剛開始做Haskell時,我被賦予執行基本GCF函數的任務,類似於計算階乘函數的函數。 這是我想出了Haskell中的GCF與elses
ggt :: Integer -> Integer -> Integer
ggt m n = if m < n then ggt n m
else if n==0 then m
else ggt n (m mod n)
我看到的答覆here,然而,在一個完全不同的方式做了比我已經證明到目前爲止,(我認爲這就是所謂的保護模式)。我的問題是我的代碼將不會加載它說
* Couldn't match expected type `(Integer -> Integer -> Integer)
-> Integer -> Integer'
with actual type `Integer'
* The function `m' is applied to two arguments,
but its type `Integer' has none
In the second argument of `ggt', namely `(m mod n)'
In the expression: ggt n (m mod n)
Failed, modules loaded: none.
我不明白爲什麼類型不匹配(我有三個整數,兩成輸入,m和n,以及作爲一個一個回報),作爲一個新手,我不知道第二個錯誤究竟意味着什麼。
我會很感激任何和所有幫助以及各種解釋!
乾杯!
你想(MOD m×n個)或''''米mod' n'''。 – hao
也就是'm \'mod \'n'。 – chepner