next up previous
Next: 6.3 対話プログラムの構造 Up: 6 例題:リストの対話的編集プログラム Previous: 6.1 使えるコマンド

6.2 使い方の例

以下にxlispで走らせた例を示します.
grus<inaba> xlisp
XLISP version 2.1, Copyright (c) 1989, by David Betz
UNIX version
; loading "init.lsp"
> (load "ledit")
(load "ledit")
; loading "ledit.lsp"
; loading "leditfunc.lsp"
T
> 
> (setq lll '(((a b) c) c d c))
(((A B) C) C D C)
> (setq ll (cdr lll))
(C D C)
> (ledit lll)   ;; lllの値の編集開始
E>pp            ;; プリティプリント
(((A B) C) C D C)
E>p             ;; レベルプリント
((... C) C D C)
E>1             ;; 最初の要素へ移動
E>pp            ;; 表示
((A B) C)
E>(bi 2)        ;; 2番目の要素に括弧を付ける
E>p
((A B) (C))
E>(n d e f g)   ;; 最後に付け加える
E>p
((A B) (C) D E F G)
E>(bi 2 5)      ;; 2番目から5番目までをひとまとめにする
(bi 2 5)
E>pp
((A B) ((C) D E F) G)
E>2
E>pp
((C) D E F)
E>(bo 1)        ;; 1番目の要素の括弧をとる
E>pp
(C D E F)
E>^             ;; 最初のレベルへもどる
E>pp
(((A B) (C D E F) G) C D C)
E>1 2           ;; 1番目の要素の2番目の要素へゆく
E>pp
(C D E F)
E>mark          ;; この場所を覚えておく
E>pp
(C D E F)
E>(bi 3 4)
E>pp
pp
(C D (E F))
E>3
E>mark          ;; またこの場所を覚える
E>pp
(E F)
E><             ;; 前に覚えた場所へもどる
E>pp
(E F)
E><             ;; さらに戻る
E>pp
(C D (E F))
E><             ;; さらに戻るとトップレベル
E>pp
(((A B) (C D (E F)) G) C D C)
E>(r c h)
E>pp
(((A B) (H D (E F)) G) H D H)
E>(-1 1 2 3)    ;; 先頭に挿入する
E>pp
(1 2 3 ((A B) (H D (E F)) G) H D H)
E>cdr           ;; restを編集する
E>pp
(2 3 ((A B) (H D (E F)) G) H D H)
E>(cdr 2)
E>pp
(((A B) (H D (E F)) G) H D H)
E>1
E>pp
((A B) (H D (E F)) G)
E>1 pp
(A B)
E>nx            ;; 隣の要素へ移動
E>pp
(H D (E F))
E>^
E>pp
(1 2 3 ((A B) (H D (E F)) G) H D H)
E>(e (+ 1 2 3)) ;; LispのEvalを呼び出す
6
E>ok            ;; 変更を加える
> lll
(1 2 3 ((A B) (H D (E F)) G) H D H)
> ll
(C D C)
> (exit)


generated through LaTeX2HTML. M.Inaba 平成18年5月6日