我在编写我的教授给我的代码时遇到了麻烦:
编写一个名为
digit7
的函数,该函数接受Int
并返回Bool
,表示7是否是其中一个数字。 (提示:使用show
来 将数字转换为字符列表。)使用digit7
创建一个 没有名为square7
的参数的函数返回最小的参数 正方形包含7作为数字的数字。
我的代码是:
digit7 l = elem '7' (show l)
这样可行但是,我需要以无点样式编写的代码。我也很难找出square7
函数。
答案 0 :(得分:5)
对于digit7
函数,您可以使用函数式合成将定义转换为无点样式:
digit7 = (elem '7') . (show)
这是因为:
digit7 l
-> ((elem '7') . (show)) l By substitution
-> (elem '7') ((show) l) By definition of (.)
-> elem '7' (show l) By operator precedence
对于square7
功能,我建议使用dropWhile
和head
。