例如,而不是
- op =;
val it = fn : ''a * ''a -> bool
我宁愿拥有
- op =;
val it = fn : ''a -> ''a -> bool
用于
val x = getX()
val l = getList()
val l' = if List.exists ((op =) x) l then l else x::l
显然我可以自己做到这一点,例如,
val l' = if List.exists (fn y => x = y) l then l else x::l
但我想确保我没有错过更优雅的方式。
最佳答案
您可以编写一个辅助函数来柯里化(Currying)函数:
fun curry f x y = f (x, y)
然后你可以做类似的事情
val curried_equals = curry (op =)
val l' = if List.exists (curried_equals x) l then l else x::l
关于operators - 有没有办法在 SML/NJ 中获得二元运算符的柯里化(Currying)形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1387038/