使用geiser和babel评估org-mode中的mit-scheme代码块

时间:2017-01-17 04:47:00

标签: emacs scheme org-mode mit-scheme

我正在尝试复制“The Little Schemer”中的代码,因为我跟进并遇到错误。

.emacs文件:

;; Melpa package contains geiser
(require 'package)
(add-to-list 'package-archives
             '("melpa-unstable" . "http://melpa.org/packages/" t)
(package-initialize)

;; Setup geiser and babel
(require 'scheme)
(require 'python)
(setq geiser-active-implementations '(mit))
(custom-set-variables
 '(scheme-program-name "mit-scheme"))
(org-babel-do-load-languages
 'org-babel-load-languages
 '((scheme . t)
   (python . t)
   (sh . t)))

我运行M-x geiser。这打开了一个功能齐全的Mit REPL。但是当我评估我的方案src代码块时,会发生以下情况:

#+BEGIN_SRC scheme
(define lat?
  (lamda (l)
    (cond
     ((null? l) #T)
     ((atom? (car l)) (lat? (cdr l)))
     (else #f))))
(lat? (bacon and eggs))
#+END_SRC

#+RESULTS:
: An error ocurred.

我在运行C-c C-c时处于org-mode。

更新:我已将环境从我的Ubuntu VM切换到Cygwin。我跟着uileiknarf's Cygwin Emacs guide取得了巨大的成功。我的学习经历又回到了正轨!

1 个答案:

答案 0 :(得分:1)

您的scheme代码应该是这样的:

(define lat?
  (lambda (l)
    (cond
     ((null? l) #t)
     ((not (pair? (car l)))
      (lat? (cdr l)))
     (else #f))))

(lat? '(bacon and eggs))

可能会毫无错误地运行。