2012-05-01 11 views
2

レッツは、私は次の関数を定義する必要がありますしていると言う:なぜhaskellで関数を作成するときに角括弧を使う必要がありますか?

アイデンティティ=

をchr.ordしかし、上記の行は動作しません、正しい方法は次のようになります。

アイデンティティ=(CHR。通常、Haskellはかなりミニマルな言語なので、余分な角括弧を使用することは(私にとっては)自然に見えません。

ブラケットを導入する必要があることを知っている人はいませんか。私はそれ以外の場所では、ドット演算子を使用していることを覚えていません。

編集ネイト/ダニエル・

からのコメントの後にどちらのあなたは正しいです。私の実際の方法はあった。

nextLetter a 
     | a /= 'z' = chr.ord a 
     | a == 'z' = 'a' 

今、私はこのケースでは、それはそれゆえ、エラー、ORD aを評価し、その後、chr.97を評価しようと、理解して!

ありがとうございました。

+1

括弧を省略しても問題ありません。あなたの質問を編集し、あなたが得ているエラーを追加できますか? – Nate

+2

私は彼が 'identity x = chr.ord x'を意味したと思う。 – m09

+0

ダニエルの答えを素早くマークし、間違いを明らかにするのを助けた。 –

答えて

4

あなたは間違っています。私はtest.hs

import Data.Char 
identity = chr.ord 

を書いて、ghciでそれをロードすると、何もうまくいきません。

関連する問題