2012-09-27 1 views
5

ハスケルではすべての機能が元々カレーされていますが、ハスケル - カレードについて

だから、max関数を見て、これがどのように機能するかについて私が理解したことを書いてみましょう。

私はこのような何か書くとき:

max 4 5 

を何が起こることは、新たなfuncionは内部でその値をrecieves 4の値を、持っているので、この関数は5に適用し、正しいされていることを作成されていることです値が返されますか?

何とか何か間違ったことを言ったのですが、これは正しいですか?

+4

人を覚えています:あなたのコメントの下線を正当化してください。 –

+0

私は文法上の誤りがあるので推測していますが、これはあきらめない理由です...質問を理解するのが難しい場合は、説明を求めてください。 –

+1

Q&Aサイトに関する知識が不足している場合は、downvoteすることはできませんが、努力が不足している場合でも問題は解決します。私は文法のいくつかを主語 - 動詞 - 目的語に訂正しました。なぜなら、目的動詞主語はその意味を幾分邪魔していたからです。 – AndrewC

答えて

9

これは間違いありません。

-- Function type right-associativity: 
a -> b -> c = a -> (b -> c) 

-- Function application left-associativity: 
f x y = (f x) y 

これらの2人のアイデンティティが連携し、カリー言語を作る:あなたはすべての最も重要なアイデンティティの2を記憶することにより約あるものカリー化覚えています。

+0

@ user428691 'max 4 5 'は'(max 4)5'と 'max 4 :: Integer - > Integer'の略で、あなたが言ったように関数であることを意味します。 – AndrewC

+0

パーフェクト、ありがとう – elf