バナナチップス

電車止まってるやん 

ダラダラ仕事して帰宅しようとしたら人身事故が発生して帰るに帰れない僕です。頭にきたのでブログを書くズラ。

えーと何だっけ、こんなコードでしたよね。

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

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

はい、完璧です。 しかし意識の高い人に言わせるとコードに重複が多いらしい。 重複なんて多いほうが記憶に残って良い筈ですが、意識の高い人はその辺の意識が低いんでしょう。

重複を許さないという考え方はDRY原則と呼ばれいるそうです。 何が乾いているんだか分かりませんが、乾かせばいいということでしょうか。

カラッカラやねん

因みにバナナが乾くとバナナチップスになります。バナナチップスは美味いです。 「バナナチップスの様に旨味を出したいから乾かすんだよ」と説明してくれれば理解もできますが、 DRY信者は説明能力的にはアレなんでしょう。

という訳で、重複を減らしてゆきます。 どうやってやれば良いか分からないので、先日の分かってそうな人を脅してに協力を仰いで書いてもらいました。

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

listOf("うまい","にがい","あまずっぱい","げろまずい")
        .map(bananaIs)
        .forEach(::println)

どうやって動いているのかは分かりませんが、コードの量は減りました。 仕組みもよく分からないので一見さんがコードを見てもわけが分かりません。 そういう意味でセキュリティ的には良さそうです。

バナナはうまい
バナナはにがい
バナナはあまずっぱい
バナナはげろまずい

で、結果を出力してみたけど変わりません。
結論:意識が高くてもアウトプットは変わらない

今宵はこのへんでよかろうかい。ではごきげんよう