gpt4 book ai didi

Haskell:使用匿名/lambda 函数进行函数组合

转载 作者:行者123 更新时间:2023-12-02 17:04:50 25 4
gpt4 key购买 nike

在准备函数式编程考试时,我在之前的测试中遇到了以下问题:

t1 = (reverse . take 2 . words . \ _ -> name)"!"

任务是编写语句的输出。变量名是指学生的名字,写成“Smith, John”的形式。如果我在 WinHugs 中输入该语句,我会得到以下输出:

["John","Smith,"]

我了解函数reverse、take和words正在做什么,并且我了解.运算符(operator)将它们连接起来。我不明白这里发生了什么:

\ _ -> name

斜线、下划线和“箭头”的作用是什么?另外,引号里的感叹号有什么作用? (什么也没有?)

最佳答案

这是一个 lambda 函数,它会丢弃其(唯一的)参数(即“!”)并生成名称

作为另一个 lambda 示例,以下是一个对其参数进行平方的 lambda 函数:

\x -> x * x

\ 是用于引入 lambda 函数的符号。

_ 表示“我们不关心其名称的变量”。

-> 将 lambda 函数的参数与用于指定其结果的表达式分开。

关于Haskell:使用匿名/lambda 函数进行函数组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11124354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com