当前位置:  开发笔记 > 编程语言 > 正文

C++的std :: bind2nd是否有内置的Haskell等价物?

如何解决《C++的std::bind2nd是否有内置的Haskell等价物?》经验,为你挑选了1个好方法。

我缺少的是部分应用函数的第二个参数而不是第一个参数的能力.当我想将函数传递给map之类的东西时,这尤其有用,但每次都不必为它编写lambda.

我为此编写了我自己的函数(下面定义,以防万一没有任何内置函数,其他任何人都很好奇),但我真的想知道Prelude中是否已存在某些内容因为我更喜欢重用而不是重新发明.

这是我的定义和一个简单的例子:

bind2nd :: (a -> b -> c) -> b -> a -> c
bind2nd f b = \a -> f a b

foo :: Int -> Bool -> String
foo n b | b = show n
        | otherwise = "blabla"

alwaysN :: Int -> String
alwaysN = bind2nd foo True

ShreevatsaR.. 15

它被称为flip.

例:

Prelude> flip (-) 2 3
1

为了将来参考,可以通过简单地在Hoogle中搜索问题中的类型签名来找到它,即(a - > b - > c) - > b - > a - > c.:-)



1> ShreevatsaR..:

它被称为flip.

例:

Prelude> flip (-) 2 3
1

为了将来参考,可以通过简单地在Hoogle中搜索问题中的类型签名来找到它,即(a - > b - > c) - > b - > a - > c.:-)

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有