【问题标题】:Two racket modules colliding两个球拍模块碰撞
【发布时间】:2018-12-16 16:24:13
【问题描述】:

我的文件需要两个模块:

(require sicp) ; contains set-car! and set-cdr!
(require (planet dyoo/sicp-concurrency:1:2/sicp-concurrency)) ; contains procedures parallel-execute and test-and-set!

问题:两个库都使用不同风格的方案。 sicp-concurrency 使用 mzscheme。要求此模块使我无法在 cond 子句中使用 else。

有没有办法在 sicp-concurrency 中阻止 mzscheme 的功能,同时仍然使用我需要的过程?

【问题讨论】:

    标签: module scheme lisp racket sicp


    【解决方案1】:

    我已将 Danny Yoo 的代码更新为 Racket 7。 在此处获取新文件“sicp-concurrency.rkt”:

    https://gist.github.com/soegaard/d32e12d89705c774b71ee78ef930a4bf

    将文件保存在与您的程序文件相同的文件夹中。 下面是一个使用示例:

    #lang sicp
    (#%require "sicp-concurrency.rkt")
    
    (define (test-1)
      (define x 10)
      (parallel-execute (lambda () (set! x (* x x)))
                        (lambda () (set! x (+ x 1))))
      x)
    
    (define (test-2)
      (define x 10)
      (define s (make-serializer))
      (parallel-execute (s (lambda () (set! x (* x x))))
                        (s (lambda () (set! x (+ x 1)))))
      x)
    
    (test-1)
    (test-1)
    (test-1)
    (test-1)
    (test-1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-28
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 2020-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多