私の人生で3回目は、Haskellを学ぼうとしています。今回は、 Learn youaHaskellを通じて...。
著者が警備員を説明するとき、彼はこの例を示します:
bmiTell :: (RealFloat a) => a -> String
bmiTell bmi
| bmi <= 18.5 = "You're underweight, you emo, you!"
| bmi <= 25.0 = "You're supposedly normal. Pffft, I bet you're ugly!"
| bmi <= 30.0 = "You're fat! Lose some weight, fatty!"
| otherwise = "You're a whale, congratulations!"
と言います
これは、命令型言語の大きなifツリーを非常に彷彿とさせますが、これだけがはるかに優れており、読みやすくなっています。他の場合は木が通常眉をひそめている場合は大きいですが、問題が個別の方法で定義されているため、それらを回避できない場合があります。警備員はこれに対する非常に優れた代替手段です。
ガードの方が読みやすいのはわかりますが、その構文が「はるかに優れている」理由がわかりません
。より柔軟ですか?もっとパワフル?警備員の大きな利点は何ですか?
私の大きな問題はおそらく文です
他の場合は木が通常眉をひそめている場合は大きいですが、問題が個別の方法で定義されているため、それらを回避できない場合があります
誰かがその例を挙げられますか?