読者です 読者をやめる 読者になる 読者になる

Gauche の真偽値と条件判断 : 1

呼称: 真偽値の判定 目的: 真偽を判定する手続きを学ぶScheme では、真偽を判断する手続きを特に述語(predicate)と呼び、述語の中でも等価性を判断する手続きを等価述語(equivalence predicate)と呼びます。 また、仮引数に pred(predicate の略) を取る手続…

Gauche の手続き : 5

呼称: 部分適用と多値 目的: cut 式と複数の結果を返す・受け取る方法を学ぶlambda 式を簡略化する方法として cut 式があります。cut 式の中に現れる <> が引数のプレースホルダーになります。<> は複数あっても良く、また は可変長引数を表します。 (cut <…

Gauche の手続き : 4

呼称: 可変長引数とその他の引数 目的: 可変長引数の渡し方と、省略可能引数/キーワード引数を学ぶ可変長引数を渡す場合、apply を使用する。の各要素を引数としてを呼び出す。 (apply <手続き> <引数リスト>) 使用例。 (define (map/log . args) (print "ar…

Gauche の手続き : 3

呼称: ローカル変数と可変長引数 目的: ローカル変数とスコープ、可変長引数の取得方法を学ぶローカル変数には let 式を使用します。 ;; <初期値式> が評価され、その値が <変数> に束縛される ;; これが一般形? (let ((<変数1> <初期値式1>) (<変数2> <初…

Gauche の手続き : 2

呼称: 高階手続き 目的: 高階手続きを学ぶ手続きを受け取る手続きや、手続きを返す手続きを高階手続きと呼びます。Scheme では手続きを基本的な構成要素として、高階手続きを組み合わせることで大きなシステムを作成する。言葉では簡単そうに説明されている…

Gauche の手続き : 1

呼称: 手続きオブジェクト 目的: 様々な手続きを学ぶ (define (add a b) (+ a b)) gosh> add #<closure add> 手続きを評価すると、# が返される。# は、リテラルで書けないオブジェクトを示す。 (define (<名前> <引数> ... ) <式> ...) と (define <名前> (lambda (<引数</closure>…

Gauche のリスト処理手続き : 4

呼称: リストの末尾再帰呼び出し 目的: 2種類の再起呼び出しがあることを学ぶ 備考: 末尾再帰の方が、効率が良い場合が多いので推奨第6章のリストを勉強するのに4回(4日)費やしてしまいました。ページ数は20ページ弱です。それだけ私にとっては難しかったで…

Gauche のリスト処理手続き : 3

呼称: リストの簡単な処理 目的: Gauche のリスト処理の再帰呼び出しに慣れる 備考: car/cdr で再帰呼び出しするのが基本(?)慣れないうちは「Scheme とこういうものだ」と思って付き合うべし、とあったのでサンプルをそのまま写経して体で覚える。条件や手…

Gauche のリスト処理手続き : 2

呼称: リストの捜査 目的: Gauche のリストの要素を処理する方法を学ぶ 備考: 式の前に #?= を置くと評価値を表示できる (fold ) は、最初の呼び出しの第2引数となる 次にの結果が、次の呼び出しの第2引数となって繰り返す リストの要素がなくなれば終了する…

CentOS 5.2 で Gauche を RPM パッケージからインストールする

CentOS 5.2 のデフォルトインストールだと、ビルド関連のパッケージがインストールされないようです。先ず、ビルド環境を構築するために yum を使ってビルド関連のパッケージをインストールします。その後、Gauche の tar ボールから RPM パッケージを作成し…

Gauche のリスト処理手続き : 1

呼称: リストの基本操作 目的: Gauche のリストの代表的な操作を学ぶ #!/usr/local/bin/gosh ;; -*- coding: utf-8 -*- ;;; basic list operation ;; make list (print "using quote : " '(1 2 3)) (print "using list : " (list 1 2 3)) ;; list operations…

プログラミング Gauche 開始

数ヶ月前から Lisp 系言語を羨望の眼差しで眺めつつ、余裕が出たとき、モチベーションが湧いたとき、機嫌の良いとき、、、と何かのきっかけで勉強したいなと思っていました。 そして、本日! Lightweight Language 2008 の会場でオライリーさんの書籍販売が…