我正在关注Andrea Ferretti 的教程,并试图+
为我自己的类型定义。
我的元组是:
TUPLE: myBox a ;
如果我创建自己的通用词
GENERIC: my+ ( a b -- c )
M: myBox my+ a>> swap a>> swap + myBox boa ;
然后我可以用它来添加把两个myBox
es的内容加在一起
6 myBox boa 7 myBox boa my+
哪个输出
--- Data stack:
T{ myBox f 13 }
但是,如果尝试+
为 with 定义自己myBox
:
M: myBox + a>> swap a>> swap + myBox boa ;
然后,当我尝试使用它时:
6 myBox boa 7 myBox boa +
我得到错误:
No suitable arithmetic method
"left" T{ myBox f 6 }
"right" T{ myBox f 7 }
"generic" +
如果我转到帮助页面,+
我什至会看到我的定义在其他列表中列出(即bignum
、complex
、fixnum
、float
和ratio
)。
如何+
为自己的元组定义通用词?