gpt4 book ai didi

scheme - 惯用的方案和通用编程,为什么只在数字上?

转载 作者:行者123 更新时间:2023-12-02 08:58:57 26 4
gpt4 key购买 nike

在Scheme中,像+、-、*、/这样的过程适用于不同类型的数字,但我们没有看到任何其他通用过程。

例如,length 仅适用于列表,因此需要向量长度和字符串长度。

我猜这是因为该语言并没有真正提供任何定义通用过程的机制(当然除了 cond),例如 Haskell 中的“类型类”或标准化对象系统。

是否有一种惯用的方案方法来处理我不知道的通用程序?

最佳答案

请记住,所有“不同类型的数字”都是方案数字(即 (number? n) 等于 #t) - 这种行为实际上是有道理的。 +-*/ 和所有其他算术运算符仅对数字进行运算(即使在其他语言中)它们将被分类为不同的数字类型 intlongfloat 等...)这是因为您可以' t 在方案中显式声明数字类型。

如果您确实需要一个通用的解决方案,除了使用外部库之外,最简单的方法是推出自己的解决方案:

(define org-length length)
(define (length x)
(cond
((string? x) (string-length x))
((vector? x) (vector-length x))
; keep going ...
(else (org-length x))))

关于scheme - 惯用的方案和通用编程,为什么只在数字上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2691710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com