如何在横函数中添加lambda表达式?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在横函数中添加lambda表达式?相关的知识,希望对你有一定的参考价值。

我是Haskell的新手,我正在使用map函数和lambda表达式。使用地图我做了横向功能,我想添加lambda表达式,但我感到困惑,它无法正常工作。

码:

tfunc :: [Int] -> [Int]
tfunc xs = map tfunc1 xs
           where tfunc1 x = x*3+x

输出:

F17BCSE206>tfunc [1,2,3,4,5]
[4,8,12,16,20] :: [Int]

我想使用lambda表达式。任何人都可以帮助我并在给定的函数中使用lambda表达式。

答案

请记住,像tfunc1 x = ...这样的函数定义只是将名称绑定到lambda表达式的语法糖,所以tfunc1 = x -> ...。然后,由于=的两面可以互换使用,你可以简单地替换

tfunc1 xs = map tfunc1 xs where tfunc1 = x -> x*3 + x

tfunc1 xs = map (x -> x*3 + x) xs where tfunc1 = x -> x*3 + x

由于where条款现在完全无关,你可以简单地删除它。

tfunc1 xs = map (x -> x*3 + x) xs

以上是关于如何在横函数中添加lambda表达式?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 lambda 表达式将 DataTable 记录添加到列表中? [复制]

编译器如何实现lambda表达式?

使用 savedInstanceState 保存和恢复 Kotlin lambda

如何使用lambda表达式/缩短onclicklisteners android studio

为啥要使用lambda表达式?原来如此,涨知识了

Lambda 表达式与方法引用