tai*_*ion 4 haskell functional-programming list-comprehension list
我有一个我们不应该使用任何更高阶函数的赋值,列表理解是否可以归类为更高阶函数?
d3d*_*ave 13
Haskell中的列表理解只是语法糖.它在哈斯克尔报告2010定义在这里,像这样:
[ e | True ] = [e]
[ e | q ] = [ e | q, True ]
[ e | b, Q ] = if b then [ e | Q ] else []
[ e | p <- l, Q ] = let ok p = [ e | Q ]
ok _ = []
in concatMap ok l
[ e | let decls, Q ] = let decls in [ e | Q ]
Run Code Online (Sandbox Code Playgroud)
注意在模式中使用的Q范围超过限定符(可以包括函数).所以答案是肯定的,列表理解是高阶的.