And*_*Ali 3 haskell functional-programming pointfree
我在编写我的教授给我的代码时遇到了麻烦:
编写一个函数
digit7,该函数接受Int并返回一个Bool说明7是否是其中一个数字.(提示:用于show将数字转换为字符列表.)digit7用于创建无参数的函数,该函数square7返回最小数字,其正方形包含7作为数字.
我的代码是:
digit7 l = elem '7' (show l)
Run Code Online (Sandbox Code Playgroud)
这有效,但是,我需要以无点样式编写的代码.我也很难搞清楚这个square7功能.
对于该digit7函数,您可以使用函数组合将定义转换为无点样式:
digit7 = (elem '7') . (show)
Run Code Online (Sandbox Code Playgroud)
这是因为:
digit7 l
-> ((elem '7') . (show)) l By substitution
-> (elem '7') ((show) l) By definition of (.)
-> elem '7' (show l) By operator precedence
Run Code Online (Sandbox Code Playgroud)
至于square7功能,我建议使用dropWhile和head.