コラッツ予想がとけたらいいな2

自分の考察を書いていきます。

Gauche の repl でリロード

はじめに

定理証明手習いの流れから、このごろ Gauche をやっています。
repl でリロード時にハマったので書きます。
Haskell の GHCi のように単純ではなかったです。

解決方法

  1. 使用するファイル全てをモジュール化する
  2. add-load-path
  3. use
  4. reload

使用するファイル全てをモジュール化する

使用するファイルに以下追記します。
ファイル名は foo.scm とします。

;; モジュールのインタフェースの定義
(define-module foo
  (use xxx)
  (use yyy)
  (export foo1 foo2 foo3)
)

;; モジュール本体
(select-module foo)

。。。本コード。。。

(provide "foo")

add-load-path

ロードパスにファイルのある場所を加えます。相対パスも使えます。

$ rlwrap gosh -i -I "."
gosh> (add-load-path "./j-bob/scheme")
("./j-bob/scheme" "." ...)
gosh>

use と reload

gosh> (use foo)
gosh> (chapter1.example5)
'nil
。。。ファイルの中身を書き換える。。。
gosh> (reload 'foo) ←★シングルクォートがポイント
#<undef>
gosh> (chapter1.example5)
(equal 'flapjack 'nil)
gosh> 

以上になります