作为后续this question关于K combinator的实施,我想实现所谓R combinator代表primitive recursion原始递归组合子: R a b zero = a
R a b (successor c) = b c (R a b c)
其中successor是successor function 。 R的类型签名是 A → ((ℕ → (A → A)) → (
我的目标是创建一个自定义映射函数,首先需要过滤列表以保留,例如,在调用每个项目上提供的函数之前,只有偶数项目。我确实需要将curried函数和第一个参数作为函数,而不是列表。我相信签名看起来是这样的:(a -> b) -> [a] -> [b] 当然有很多方法可以做到这一点。这是我第一次尝试的样子。 var isEven = x => x % 2 === 0;
var filterEvensM
考虑下面的哈斯克尔定义,从this excellent Haskell video on YouTube采取: import Data.List
greeting = "Hello"
swedish = intersperse 'f'
very f x = f (f (f x))
如果我们将其加载到GHCI,我们看到了以下结果: ghci> swedish greeting
"Hfef