我正在审查我的Haskell编程课程中的旧考试,我似乎无法围绕这个功能(我认为给出的信息太少).
给出的代码是
myId x = x
function n f
| n > 0 = f . function (n-1) f
| otherwise = myId
Run Code Online (Sandbox Code Playgroud)
我知道如果我例如用输入调用函数2 (*2),我将得到一个函数作为结果.如果我打电话给我,(-2) (*2) 1我会得到结果1.
我只是不知道怎么样?另外,我无法绕过函数的类型.
我知道这两个选项是正确的,但我不明白为什么(可能是括号让我感到困惑).
function :: (Num a, Ord a) => a -> (a -> a) -> a -> a
function :: (Num a, Ord b) => a -> (b -> b) -> b -> b
Run Code Online (Sandbox Code Playgroud)
任何人都可以澄清我应该如何"阅读"这个功能,以及我应该如何理解类型转换是如何工作的(已经阅读了我在Haskell文献中的编程以及从了解你的Haskell,但现在已经进入了几天).
在这段代码中:
[x | temp <- str, x <- isVowel temp]
Run Code Online (Sandbox Code Playgroud)
我想知道是什么
<- 运营商<- str 运营商isVowel 如果其参数是元音,则返回true.
string haskell list-comprehension variable-assignment operator-keyword