考虑:
#include "share/atspre_staload.hats" fun plus_int_int(x: int, y: int): int = x + y symintr .plus overload .plus with plus_int_int implement main0() = println!("4+4+4 = ", ((4).plus(4)).plus(4))
这是可行的,很明显这是不可能的 4.plus() 4. 作为浮点数。我想知道的是,为什么 (4).plus(4).plus(4) .plus (int, int) -> int . 它是什么类型的?
4.plus()
4.
(4).plus(4).plus(4)
.plus
(int, int) -> int
当前ATS2解析器解释
作为
((4).plus)((4).plus)(4)
我不能轻易地修复解析器。我将在实现ATS3时考虑它。