小编Ant*_*ing的帖子

从旧考试中解释Haskell函数

我正在审查我的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,但现在已经进入了几天).

haskell function

3
推荐指数
1
解决办法
156
查看次数

"< - "在列表理解中意味着什么?

在这段代码中:

[x | temp <- str, x <- isVowel temp]
Run Code Online (Sandbox Code Playgroud)

我想知道是什么

  • <- 运营商
  • <- str 运营商

isVowel 如果其参数是元音,则返回true.

string haskell list-comprehension variable-assignment operator-keyword

-2
推荐指数
1
解决办法
389
查看次数