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と順に入力してやると見事解いたことになりました、卑怯くさい!
というわけで時間的に問題見れたのはここまででした。
是非自信のある方は残りの問題を挑戦してみてください!