And*_*ton 3 operators sml smlnj currying
例如,而不是
- op =;
val it = fn : ''a * ''a -> bool
Run Code Online (Sandbox Code Playgroud)
我宁愿拥有
- op =;
val it = fn : ''a -> ''a -> bool
Run Code Online (Sandbox Code Playgroud)
用于
val x = getX()
val l = getList()
val l' = if List.exists ((op =) x) l then l else x::l
Run Code Online (Sandbox Code Playgroud)
显然,我可以自己做这件事,例如,
val l' = if List.exists (fn y => x = y) l then l else x::l
Run Code Online (Sandbox Code Playgroud)
但我想确保我不会错过更优雅的方式.
您可以编写一个函数来帮助函数:
fun curry f x y = f (x, y)
Run Code Online (Sandbox Code Playgroud)
然后你可以做类似的事情
val curried_equals = curry (op =)
val l' = if List.exists (curried_equals x) l then l else x::l
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
564 次 |
最近记录: |