我有一个这样的Haskell函数:
in2out :: String -> String in2out s = show (sumAllLineValues $ lines s)
字符串(其中sumAllLineValues在我的代码中定义。我如何定义in2out无点,所以没有参数s?
sumAllLineValues
in2out
s
cx6n0qe31#
要使函数成为pointfree,你需要重新安排它的所有参数的用法,这样它们就可以被减少。在这种情况下,参数已经被使用了一次,并且一直在右边,所以你需要做的就是把它从括号中取出来,你可以使用函数复合(.)来做到这一点:
.
in2out :: String -> String in2out s = (show . sumAllLineValues . lines) s
字符串然后把它减少到:
in2out :: String -> String in2out = show . sumAllLineValues . lines
型
1条答案
按热度按时间cx6n0qe31#
要使函数成为pointfree,你需要重新安排它的所有参数的用法,这样它们就可以被减少。在这种情况下,参数已经被使用了一次,并且一直在右边,所以你需要做的就是把它从括号中取出来,你可以使用函数复合(
.
)来做到这一点:字符串
然后把它减少到:
型