忍者ブログ
おかげさまでspamコメントが増えてきましたので、一応コメントを承認制にしました。基本的には承認します。
[392] [391] [390] [389] [388] [387] [386] [385] [384] [383] [382]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

とりあえずサンプルLISP-average.lspを解読してみましょう.

&key
M.Hiroi's Home Page/ xyzzy Lisp Programmingの,&keyをご参照ください.ようするに,&key以降に出現した引数(でいいんですかね)の順番や存在を気にせずに扱うことができるよ,ということですね.define-batch-processに与えられる引数としては,少なくともfile, args, そしてoutputがあります.fileはinput file, outputはoutput fileで,argsは,batch-processorのGUI上でAdd filesを選択したときに出てくるウインドウで指定しておくことができます.
if
Lisp一夜漬けの,制御と述語をご参照ください.
(if p THEN ELSE)
で表され,pが評価式です.サンプルでは,
(if (> (length args) 2) (warn ...) (modification))
となっています.これは,argsの個数が2以上であったとき--(length args)を,"args(inputの時に入力した引数リスト)の個数"と読み替えますと,(> argsリストの個数 2)と見ることができ,lispでは左端のシンボル(car)が関数として機能するよ,ということを考えると,argsリストの個数 > 2 のとき,と読み替えることができます--に,(warn ...)の処理を行い,そうでなければ,(warn ...)以降の処理をしますよ,ということを意味しています.
常識の人には常識のことを長々と書いていますが,たとえば,ファイルをinput (add) するときに,ある条件のファイルには1,別の条件のファイルには2という引数を与えて,
(if (= (car args) 1) (then-modification) (else-modification))
などとすると,1の引数を与えられたファイルと,それ以外のファイルで別の処理をひとつのbatch-processで行うことができたりするわけです.ここで,statesを呼び出せれば便利そうなんですが,ちょっと弄ってみましたがやり方は良くわかりませんでした.

続きます.

拍手[0回]

PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
08 2017/09 10
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
メールはこちらから
プロフィール
HN:
渡辺隼人
性別:
男性
ブログ内検索
カウンター
コガネモチ