Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 如何让装订工作_Function_Haskell_Functional Programming_Let - Fatal编程技术网

Function 如何让装订工作

Function 如何让装订工作,function,haskell,functional-programming,let,Function,Haskell,Functional Programming,Let,我是Haskell的新手,在以下示例中,我很难理解let绑定是如何工作的: prefixes :: [a] -> [[a]] prefixes xs = let prefix n = take n xs in map prefix (range (length xs)) “take”函数返回一个列表,那么它如何绑定到2个变量(前缀n)?或者我完全没有抓住要点……你可以把让当作使用匿名函数的语法糖分 让name=value在stuff中等同于(\name->stuff)

我是Haskell的新手,在以下示例中,我很难理解let绑定是如何工作的:

prefixes :: [a] -> [[a]] 

prefixes xs =
    let prefix n = take n xs
    in map prefix (range (length xs))

“take”函数返回一个列表,那么它如何绑定到2个变量(前缀n)?或者我完全没有抓住要点……

你可以把
当作使用匿名函数的语法糖分


让name=value在stuff
中等同于
(\name->stuff)value
。一个匿名函数的主体是
in
子句中的表达式,它应用于绑定到
let
子句中名称的表达式。

您可以将
let
看作是使用匿名函数的语法糖


让name=value在stuff
中等同于
(\name->stuff)value
。一个匿名函数,其主体是
in
子句中的表达式,它应用于绑定到
let
子句中名称的表达式。

前缀n
是一个以
n
为参数并返回列表的函数。我不确定您到底在问什么,但是
let
创建了一个名为
prefix
的本地函数,然后用于映射
范围。你可以知道
prefix
是一个函数,因为它说它接受一个参数
n
prefix n
是一个接受
n
作为参数并返回列表的函数。我不确定你到底在问什么,但是
let
创建了一个名为
prefix
的本地函数,然后,它用于映射
范围
。您可以知道
前缀
是一个函数,因为它表示它接受一个参数
n