我有这个功能:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<head lang="en">
</head><body>
<div class="longdiv">
</div>
</body>
我需要使用此函数(作为部分应用程序)并使用参数number和list进行函数clipupdown,其中number表示该列表中应存在的最小数字,并且所有低于min的数字应设置为最小值数。例如,当我打电话时:
fun min x y = if x >= y then y else x
我应该
clipdown 10 [1,11,21,4,6,7,12]
任何提示?
答案 0 :(得分:3)
任何提示?
当您使用一个元素来呼叫min
(编辑:或实际上max
)时,您会得到什么?
min 10
如何在列表中映射函数?
答案 1 :(得分:1)
fun clipdown lowest numbers = map (max lowest) numbers
你必须使用max而不是min。每当程序找到低于最小值的数字时,它应该选择最小值(大于遇到的数量)。所以你需要选择最大值。
答案 2 :(得分:0)
由于Int.min
和Int.max
已经存在,但是采用元组,你可以编写一个函数
fun curry f x y = f (x, y)
并使用此map o curry Int.max
来获取clipdown
。
同样,您可以clipup
获得map o curry Int.min
。
你也可以通过编写
这两个来获得clipupdown
fun clipupdown lower higher = clipdown lower o clipup higher
但你也可以使用(地图f)∘(地图g)=地图(f∘g):
fun clipupdown lower higher = map (curry Int.max lower o curry Int.min higher)
这称为map fusion。