小编Dav*_*rea的帖子

Haskell +"删除参数"

我有一个理论问题,一个朋友和我一直试图看,我们怎么做.我们有一个名为的函数palindrome,告诉我们String是否是回文.以下是我们实现它的方式(可能有更好的方法,但这就是我们更喜欢它的方式.)

palindrome :: String -> Bool
palindrome = \x -> (== reverse x) x
Run Code Online (Sandbox Code Playgroud)

我们想要做的是remove我们在这里使用的Lambda,只使用部分应用程序和高阶函数.我们有几个关于如何做到这一点的想法,但它们都没有与我们制作的函数类型相匹配:

palindrome :: String -> Bool
Run Code Online (Sandbox Code Playgroud)

最接近的方法之一是使用合成,但它返回一个函数,它接受两个字符串而不是一个,因为一个用于反向而另一个用于(==):

palindrome = (==) . reverse
Run Code Online (Sandbox Code Playgroud)

也许,我们忘了什么或者我们没有看到什么.为了在不使用Lambda的情况下使用这两个函数,你会怎么做?

lambda haskell functional-programming

5
推荐指数
3
解决办法
479
查看次数

标签 统计

functional-programming ×1

haskell ×1

lambda ×1