2012-07-01から1ヶ月間の記事一覧

common lispにおけるスコープの考察

(setf x 'outside) ;=>outside ;letはparallelに値を束縛する. (let ((x 'inside) (y x)) ;x => outside (list x y)) ;=>(inside outside) ;let*は逐次値を束縛する. (let* ((x 'inside) (y x)) ;x => inside (list x y)) ;=>(inside inside) (list y) ;=>…

fortran

関数によって本体の変数が書き換わっていることに注意. COMMON A(10) DO 10 J=1,10 A(J) = FLOAT(J) 10 CONTINUE DO 50 K=1,10 X=A(10) Y= FS1(K,X) WRITE(*,*) 'K=', K,' X =', X, ' Y=', Y 50 CONTINUE STOP END C SUBROUTINE KEISAN1(K,X) C COMMON A(10…

lispの再帰関数,関数作成の練習

;リスト→最後の要素を取除いたリストを返す. (defun butlast$ (lst) (reverse (cdr (reverse lst))) ) ;階乗計算 ;1つめの方法 (defun factorial (x) (if (<= x 1) x (* x (factorial (- x 1))) )) ;2つめの方法 (defun factorial2 (n) (fac-loop 1 n 1)) …

lispの練習

Lispはデータもリスト処理も区別せず,全く同じルールで計算する.QUOTEのやくわり 'apple はフォームだが,これをひょうかするとappleというデータとなる.関数の引数はデータ型であると分かって初めてその関数を適用できる. (+ a x) (list '(1 2)) ;与え…