【发布时间】:2016-10-17 05:31:08
【问题描述】:
通过阅读在线教程Write Yourself a Scheme in 48 Hours,我正在慢慢学习Scheme和修改Haskell。我刚上this 部分,它向我们介绍了Scheme 中的一些比较运算符。
("=", numBoolBinop (==)),
("<", numBoolBinop (<)),
(">", numBoolBinop (>)),
("/=", numBoolBinop (/=)),
(">=", numBoolBinop (>=)),
("<=", numBoolBinop (<=)),
("&&", boolBoolBinop (&&)),
("||", boolBoolBinop (||)),
("string=?", strBoolBinop (==)),
("string<?", strBoolBinop (<)),
("string>?", strBoolBinop (>)),
("string<=?", strBoolBinop (<=)),
("string>=?", strBoolBinop (>=)),
我有几个新手问题。 1. 为什么不同类型有单独的比较运算符,而不是一个泛型运算符或一个有许多重载的运算符? 2. 是否有可能有一个适用于所有类型的“通用”相等运算符以及如何实现?如果不是针对所有类型,那么至少针对字符串和数字?
【问题讨论】:
标签: generics polymorphism scheme operators lisp