Lispハック!!(1)


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。


Lispの簡単なサンプル


インスト参考サイト
sicp-start
ChezEdit
MzScheme: Download MzScheme

まだまだ、基本的なさわりしか学んでないから簡単なサンプルだけ。
関数の説明は自分的解釈なので参考にすると痛い目見るかも・・・。
近いうちにもっとしっかりした記事にまとめます・・・多分w
一応、使ってる処理系は基本MzSchemeってやつ。(はやく色々できるようになりたい・・・)

こっからソース(つっても役に立たないだろうけど・・・)

;; 1. nil, 2. atom, 3. S式
;; cons
; nilに追加していく感じ
; 第一引数 : car部分
; 第二引数 : cdr部分
(cons 1 2) ;結果:(1 . 2)
(cons 1 (cons 2 3)) ;結果:(1 2 . 3) = (1 . (2 . 3))と同義
(cons "hello" 'world) ;結果:("hello" . world)
(cons '1 #a) ;結果:(1 . #a)

;; list
; 第一引数 : car部分
; 以下引数が続く : cdr部分
(list 1 '2 "hello" 'world #!) ;結果:(1 2 "hello" world #!)

;; quote(')
; 評価しないで!!
(cons (+ 1 2) '(+ 3 4)) ;結果:(3 + 3 4)
(list (+ 1 2) '(+ 3 4) ''(+ 3 4)) ;結果:(3 (+ 3 4) '(+ 3 4))

;; car
; ポインタの前の部分の取得(car部分の取得)
(car '(1 2 3 4)) ;結果:1
(car (cons '(1 2) '(3 4))) ;結果:(1 2)
(car (list 1 2 3 4)) ;結果:1

;; cdr
; ポインタの後ろの部分を取得(cdr部分の取得)
(cdr '(1 2 3 4)) ;結果:(2 3 4)
(cdr (cons '(1 2) '(3 4))) ;結果:(3 4)
(cdr (list 1 2 3 4)) ;結果:(2 3 4)

Lispの基礎1から学べる記事を作りたいな~。
そんでもって少しでもリスパーが増えたら良いなw
それでは、良いハックを~www


ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。