我可以在没有写出匿名函数的情况下使用中缀运算符进行折叠吗?

AJc*_*dez 5 sml syntactic-sugar

如果我想添加一个列表,我可以这样做:

- List.foldr (fn (x, y) => x + y) 0 [1, 2, 3]
val it = 6 : int
Run Code Online (Sandbox Code Playgroud)

有没有办法写更多的东西:

List.foldr + 0 [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

我试过这样的事情:

fun inf2f op = fn (x, y) => x op y;
Run Code Online (Sandbox Code Playgroud)

Bri*_*ian 7

你很亲密 op在第二个示例中添加关键字.

- List.foldr op + 0 [1,2,3];
val it = 6 : int
Run Code Online (Sandbox Code Playgroud)

  • 呃......那不就是`f`吗? (5认同)
  • @brian,只是为了正确.`op`是一个关键字,就像`if`,`with`和`open`一样.不是运营商. (2认同)