私はHaskellを初めて使いました。私はいくつかのチュートリアルを試しています。 私はこのスクリプトを書いた:Haskellで関数を定義する正しい方法
lucky::(Integral a)=> a-> String
lucky 7 = "LUCKY NUMBER 7"
lucky x = "Bad luck"
私はlucky.hsとしてこれを保存し、インタプリタでそれを実行し、それが正常に動作します。
しかし、私は関数定義については不明です。それは私が次のように私は同じように機能ラッキー定義することができることを読んだことがほとんどないかららしい(関数名はlucky2です):
lucky2::(Integral a)=> a-> String
lucky2 x=(if x== 7 then "LUCKY NUMBER 7" else "Bad luck")
はどちらも同じようにうまく動作するように見えます。明確に機能する幸運は明確に読み取るが、lucky2関数を書く正しい方法ですか?
私が知る限り、彼らは意味は同じですが、最初のものはよりよく見え、ハスケルでそれをするのが好ましい方法です。私はハスケルの熟達者ではなく、間違っているかもしれないので、これを答えとして掲示しません。 – Matej
ところで、括弧は必要ありません: 'lucky2 x = = x == 7ならば" LUCKY NUMBER 7 "else" Bad luck "' – sdcvvc
また、 'lucky :: Integral - > String' 。 '=>'の左にある命名は、同じ型を2回必要とする場合にのみ当てはまります。 –