相关疑难解决方法(0)

如何使用函数组合(.)/ application($)运算符重写此表达式?

我一直很努力把握(.)($)运营商在哈斯克尔.我相信我很了解它们之间的差异,但我仍然很难用这些运算符成功替换表达式中的括号.

例如,如果我有表达式

print(show(take 5 [1..10]))
Run Code Online (Sandbox Code Playgroud)

我理解如何使用(.)($)运算符重写它

print . show . take 5 $ [1..10]
Run Code Online (Sandbox Code Playgroud)

但是,如果我有类似的东西

print (show (take (snd (1,5)) [1..10]))
Run Code Online (Sandbox Code Playgroud)

最远的我可以将其简化为

print . show . take (snd (1,5)) $ [1..10]
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么,我似乎无法用($)or (.)运算符替换那些内部括号,并让它成功编译.据我所知,大多数Haskeller通常在括号中使用($)(.)运算符,所以我也很努力地遵循这种风格.如果有人可以指出我如何在不使用括号的情况下重写上面的表达式,我认为这将有助于我使用那些更成功的运算符.谢谢.

haskell

1
推荐指数
1
解决办法
87
查看次数

标签 统计

haskell ×1