Haskell高阶函数。传递两个函数作为参数。

路易斯·费尔南多·皮内达

我最近一直在自学Haskell,我的练习之一是实现一个函数,该函数将两个函数作为参数并将数字3传递给第一个函数,并将结果传递给第二个函数。我在球拍方面有更多经验。我为球拍创建的功能是

(define (nestfun3 function function2)
  (function2 (function 3)))

我正在尝试在球拍中复制此功能。我知道只有一个函数作为参数的高阶函数可以像

twice function = function . function

如何传递两个功能?我试过了

twice function = function . function
three function = function . twice 
卡斯滕

直接翻译为:

apply3 :: Num a => (a -> b) -> (b -> c) -> c
apply3 f g = g (f 3)

记住:您不想只组合函数-您想先应用3然后将结果应用到其他函数


抱歉,混音...现在应该可以使用:

λ> let f = (+1)
λ> let g = (*2)
λ> apply3 f g
8
λ> apply3 g f
7

如果您想知道-您不必真正地从签名开始(尽管添加签名是一个好习惯)-如果您在ghci中这样做:

λ> let apply3 f g = g (f 3)
λ> :t apply3
apply3 :: Num a => (a -> t1) -> (t1 -> t) -> t

它会帮您(或者您可以使用ghc-mod或其他工具)-我实际上只是将类型参数重命名了(这些参数t很丑陋)

这样,它应该看起来与您在Scheme中所做的非常相似

当然,您可能想确保重命名时不交换功能:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

传递两个泛型作为函数参数

来自分类Dev

将void函数作为带有两个参数的参数传递

来自分类Dev

将void函数作为带有两个参数的参数传递

来自分类Dev

在参数中定义函数以便将两个函数中的一个作为参数传递的方法

来自分类Dev

将两个(管道式)shell命令作为参数传递给shell函数

来自分类Dev

使用lamdify添加两个numpy数组-将表达式作为函数参数传递

来自分类Dev

Haskell从两个列表中绘制函数参数

来自分类Dev

Haskell从两个列表中绘制函数参数

来自分类Dev

将附加参数传递给两个函数

来自分类Dev

在reduce函数中传递两个以上的参数

来自分类Dev

将两个参数传递给fminunc函数

来自分类Dev

将两个参数传递给Javascript函数

来自分类Dev

tkinter参数在两个函数之间传递

来自分类Dev

传递两个参数时函数不起作用

来自分类Dev

将参数传递给函数:两个元素元组v。两个单独的参数?

来自分类Dev

这两个高阶函数有何不同?

来自分类Dev

使用高阶函数而不是两个循环

来自分类Dev

Python C API:将带有特殊类型的许多参数的两个函数作为模块传递

来自分类Dev

R:使用用户输入将函数和参数作为参数传递给高阶函数

来自分类Dev

R:使用用户输入将函数和参数作为参数传递给高阶函数

来自分类Dev

简化传递两个两个不同函数的相同参数

来自分类Dev

传递n个参数的函数作为nx个参数的函数

来自分类Dev

是否可以将两个具有不同签名的函数作为参数传递给另一个函数?

来自分类Dev

在 Haskell 中将两个函数相加

来自分类Dev

Kotlin高阶函数参数:传递子类型

来自分类Dev

在函数之间传递两个变量

来自分类Dev

Haskell-将任意函数和参数列表作为参数传递给另一个函数

来自分类Dev

R中的%in%函数,两个参数

来自分类Dev

遍历两个参数函数python

Related 相关文章

  1. 1

    传递两个泛型作为函数参数

  2. 2

    将void函数作为带有两个参数的参数传递

  3. 3

    将void函数作为带有两个参数的参数传递

  4. 4

    在参数中定义函数以便将两个函数中的一个作为参数传递的方法

  5. 5

    将两个(管道式)shell命令作为参数传递给shell函数

  6. 6

    使用lamdify添加两个numpy数组-将表达式作为函数参数传递

  7. 7

    Haskell从两个列表中绘制函数参数

  8. 8

    Haskell从两个列表中绘制函数参数

  9. 9

    将附加参数传递给两个函数

  10. 10

    在reduce函数中传递两个以上的参数

  11. 11

    将两个参数传递给fminunc函数

  12. 12

    将两个参数传递给Javascript函数

  13. 13

    tkinter参数在两个函数之间传递

  14. 14

    传递两个参数时函数不起作用

  15. 15

    将参数传递给函数:两个元素元组v。两个单独的参数?

  16. 16

    这两个高阶函数有何不同?

  17. 17

    使用高阶函数而不是两个循环

  18. 18

    Python C API:将带有特殊类型的许多参数的两个函数作为模块传递

  19. 19

    R:使用用户输入将函数和参数作为参数传递给高阶函数

  20. 20

    R:使用用户输入将函数和参数作为参数传递给高阶函数

  21. 21

    简化传递两个两个不同函数的相同参数

  22. 22

    传递n个参数的函数作为nx个参数的函数

  23. 23

    是否可以将两个具有不同签名的函数作为参数传递给另一个函数?

  24. 24

    在 Haskell 中将两个函数相加

  25. 25

    Kotlin高阶函数参数:传递子类型

  26. 26

    在函数之间传递两个变量

  27. 27

    Haskell-将任意函数和参数列表作为参数传递给另一个函数

  28. 28

    R中的%in%函数,两个参数

  29. 29

    遍历两个参数函数python

热门标签

归档