Рассмотрим:
#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)
?ATS не находит допустимой перегрузки для второй .plus
, что говорит мне, что он ожидает какой-то другой тип, кроме (int, int) -> int
.К какому типу это относится?