List 剪辑大于最大值的数字

List 剪辑大于最大值的数字,list,functional-programming,sml,List,Functional Programming,Sml,我有这个功能: fun min x y = if x >= y then y else x 我需要使用这个函数(作为一个部分应用程序)并使用参数number和list生成函数clipupdown,其中number表示该列表中应该存在的最小数,所有小于min的数都应该设置为该最小数。例如,当我打电话时: clipdown 10 [1,11,21,4,6,7,12] 我应该 [10,11,21,10,10,10,12] 有什么提示吗 有什么提示吗 当您仅使用一个元素调用min(编辑:或者

我有这个功能:

fun min x y = if x >= y then y else x
我需要使用这个函数(作为一个部分应用程序)并使用参数number和list生成函数clipupdown,其中number表示该列表中应该存在的最小数,所有小于min的数都应该设置为该最小数。例如,当我打电话时:

clipdown 10 [1,11,21,4,6,7,12]
我应该

[10,11,21,10,10,10,12]
有什么提示吗

有什么提示吗

  • 当您仅使用一个元素调用
    min
    (编辑:或者实际上是
    max
    )时,会得到什么

    min 10
    
  • 如何将函数映射到列表上

  • 有什么提示吗

  • 当您仅使用一个元素调用
    min
    (编辑:或者实际上是
    max
    )时,会得到什么

    min 10
    
  • 如何将函数映射到列表上


  • 由于
    Int.min
    Int.max
    已经存在,但是使用元组,您可以编写一个函数

    fun curry f x y = f (x, y)
    
    并使用类似于
    map o curry Int.max
    的方法获得
    clipdown

    同样,您可以使用
    map o curry Int.min
    获得
    clipup

    您还可以通过像这样组合这两个选项来获得
    clipupdown

    fun clipupdown lower higher = clipdown lower o clipup higher
    
    但是你也可以用它(地图f)∘ (图g)=图(f)∘ g) :


    这被称为。

    ,因为
    Int.min
    Int.max
    已经存在,但是对于元组,您可以编写一个函数

    fun curry f x y = f (x, y)
    
    并使用类似于
    map o curry Int.max
    的方法获得
    clipdown

    同样,您可以使用
    map o curry Int.min
    获得
    clipup

    您还可以通过像这样组合这两个选项来获得
    clipupdown

    fun clipupdown lower higher = clipdown lower o clipup higher
    
    但是你也可以用它(地图f)∘ (图g)=图(f)∘ g) :

    这就是所谓的

    您必须使用最大值,而不是最小值。每当程序发现低于最小值的数字时,应选择最小值(大于遇到的数字)。因此,您需要选择最大值

    您必须使用最大值,而不是最小值。每当程序发现低于最小值的数字时,应选择最小值(大于遇到的数字)。因此,您需要选择最大值。

    您实际上需要使用“max”函数。因为他只是想得到一些提示,我想这个答案不应该被否决。你实际上需要使用“max”函数。因为他只是在寻求暗示,我想这个答案不应该被否决。