剪辑大于最大值的数字

时间:2018-02-03 17:50:07

标签: list functional-programming sml

我有这个功能:

<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]

任何提示?

3 个答案:

答案 0 :(得分:3)

  

任何提示?

  1. 当您使用一个元素来呼叫min(编辑:或实际上max)时,您会得到什么?

    min 10
    
  2. 如何在列表中映射函数?

答案 1 :(得分:1)

fun clipdown lowest numbers = map (max lowest) numbers

你必须使用max而不是min。每当程序找到低于最小值的数字时,它应该选择最小值(大于遇到的数量)。所以你需要选择最大值。

答案 2 :(得分:0)

由于Int.minInt.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