バナナの味で関数を味わう

こんにちは、Kotlinとバナナで関数を学ぶ時間がやってきました。 司会の僕です。

さて、先日こんなクソコードを書きました。

var sIsC = {s: String, c: String -> "${s}${c}"}

println(sIsC("スイカ", "うまい"))
println(sIsC("ゴリラ", "にがい"))

この関数を使うと主語も述語も変更できてしまいます。 しかし、当面バナナの味わいだけに着目してみると俄然うっとおしくなります。

println(sIsC("バナナ", "うまい"))
println(sIsC("バナナ", "にがい"))
println(sIsC("バナナ", "あまずっぱい"))
println(sIsC("バナナ", "げろまずい"))

バナナバナナうるせぇよ。とそういう沸点の低い貴方はどうすればいいのか? 僕はよくわからなかったので知ってる人に聞きました。

知らないことは他人に聞くに限ります。 そして出来るのであれば、その場でやってもらうのがベストです。 聞いてしまうと理解しないといけませんが、やってもらえば理解する手間が省けます。

我々、怠け者にとって魚の釣り方なんてどうでもいいのです。魚をよこせ。

という訳で、脅して頼み込んで書いてもらったのが次のコードです。

val aIsB = {a: String -> {b: String -> "${a}${b}" }}
val bananaIs = aIsB("バナナ")

println(bananaIs("うまい"))
println(bananaIs("にがい"))
println(bananaIs("あまずっぱい"))
println(bananaIs("げろまずい"))
バナナはうまい
バナナはにがい
バナナはあまずっぱい
バナナはげろまずい

まぁ色々あったけど実行結果は変わりませんね。要するにどっちでも良かったって事です。