Scheme 中的继承类

标签 inheritance lisp scheme

现在我研究 Scheme 的 OOP 部分。我可以像这样在 Scheme 中定义类:

(define (create-queue)
  (let ((mpty #t) 
        (the-list '()))

    (define (enque value)
      (set! the-list (append the-list (list value)))
      (set! mpty #f)
      the-list)

    (define (deque)
      (set! the-list (cdr the-list))
      (if (= (length the-list) 0) 
      (set! mpty #t))
      the-list)

    (define (isEmpty)
      mpty)

    (define (ptl)
      the-list)

    (define (dispatch method)
      (cond ((eq? method 'enque) enque)
        ((eq? method 'deque) deque)
        ((eq? method 'isEmpty) isEmpty)
        ((eq? method 'print) ptl)))

    dispatch))

(示例来自 css.freetonik.com)

我可以在Scheme中实现类继承吗?

最佳答案

好吧,我不会把它称为一个类,但那只是我。这只是闭包和原始方案。

Scheme本身没有对象系统。但是,Scheme 可以实现类系统。

如果您想使用 oop 系统,可以尝试为 Scheme 编写的几种系统。

Here是一个列出了几个的链接,当然还有其他的。

关于Scheme 中的继承类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2382082/

相关文章:

functional-programming - 在 Racket 中定义错误

Lisp 代码意外结果

algorithm - 方案中的扩展欧几里得算法

functional-programming - 在方案中随机取元素组

dictionary - Scheme 中的平方列表中的值总和

ruby-on-rails - css 属性在 Rails 应用程序中继承

c++ - C++中的继承;类数据也被继承了吗?

lisp - Common Lisp 中 NULL 和 NIL 之间的确切区别是什么?

c++ - C++中的最终类

java - 内部类究竟如何访问外部类中的元素?