JavaScriptでお題に対してTrueを返すという returnTrue をやってみました。
が、見事に2問しか解けなくて惨敗しました。
ここにはその記録として色々書いていきます。 ※解答を書いているので注意
事前情報
最適解ではありませんがGithubに解いた方の解答集がありました。
僕のように惨敗を喫した方は、ここの解答を参考に色々と学びましょう。
id
function id(x) {
return x;
}
id( [解答入力欄] )
これは簡単で、答えは !0 でした。
まぁ普通は true って書きますよね・・・(初っ端trueって解答した勢
reflexive
function reflexive(x) {
return x != x;
}
reflexive( [解答入力欄] )
これもまだ割りかし簡単ですね。
答えは NaN になります。
NaNは自身との等価演算を行うとfalseを返すので、不等価演算の場合はtrueを返します。
transitive
こっから訳分からんちんでした。
function transitive(x,y,z) {
return x && x == y && y == z && x != z;
}
transitive( [解答入力欄] )
パッと見で答えられる人はすげぇっす。
これは答えは [],0,[] になります。
[] != [] でtrueになるってのが気付かなかったっす・・・
counter
function counter(f) {
var a = f(), b = f();
return a() == 1 && a() == 2 && a() == 3
&& b() == 1 && b() == 2;
}
counter( [解答入力欄] )
これはちょっと面白い解き方がありました。
先ほど紹介した解答集だと x=>$=>x=-~x って解き方が紹介されてました。
確かにふむふむ納得という解き方なのですが、なんと7charsで解いている方がいました。
で、どうやって7charsで解くかというと x=>prompt というなんともアレな解き方でした。
Chromeだと動かなかったのですが、Firefoxではプロンプトが表示されます。
そこに 1→2→3→1→2と順に入力してやると見事解いたことになりました、卑怯くさい!
というわけで時間的に問題見れたのはここまででした。
是非自信のある方は残りの問題を挑戦してみてください!