我在某處閱讀有關咖喱的功能,聽起來令人困惑。這個例子讓我更加困惑。比方說,我有一個函數:通過示例瞭解咖喱
power :: (Int, Float) -> Float -- computes the nth power of b
power (n, b) =
if n == 0 then 1.0 else b * power (n-1, b)
現在我定義另一個函數powerc:: Int -> Float -> Float
這樣
powerc n b =
if n == 0 then 1.0 else b * powerc (n-1) b
可有人請給我怎麼powerc
power
功能的咖喱版的解釋。
如何直接寫square = powerc 2 – OneMoreError
在這種情況下b和n的值是多少? – OneMoreError
'square = powerc 2'定義了一個新的函數'square :: Float - > Float'。直觀地說,它是'powerc'的一個版本,其中'n'總是2.'b'將是你傳遞給它的任何東西;即「方形4 == 16.0」。 – jtobin