2

次の関数を定義する必要があるとしましょう。

アイデンティティ = chr.ord

しかし、上記の行は機能しません。正しい方法は次のとおりです。

アイデンティティ = (chr.ord)

通常、Haskell は非常に最小限の言語であるため、余分な括弧を使用することは (私には) 自然に思えません。

ブラケットを導入する必要性を認識している人はいますか。Haskell でドット演算子を使用する他の場所を思い出せません (10 進数以外)。

Nate/Daniel からのコメント後の編集

どちらも正しいです。私の実際の方法は次のとおりです。

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

この場合、ord a を評価してから chr.97 を評価しようとするため、エラーが発生します。

ありがとう。

4

1 に答える 1

4

あなたは間違っています。私が書くとき

import Data.Char
identity = chr.ord

test.hsロードしてghci、何も問題ありません。

于 2012-05-01T09:54:14.890 に答える