問題4.58 – SICP(計算機プログラムの構造と解釈)その231

問題4.58 次の規則を定義する。 ある人の部門と、 ある人の supervisor の部門が異なる場合。 ある人は、その部門の big shot (黒幕)である。 (assert! (rule (same ?x ?x) [...]…続きを読む

問題4.57 – SICP(計算機プログラムの構造と解釈)その230

問題4.57 問題文が非常に解りにくい… "person-1 が person-2 と同じ担当である" というのはすぐ理解できるが、その次の条件がよく解らない。 (assert! (rul [...]…続きを読む

問題4.56 – SICP(計算機プログラムの構造と解釈)その229

問題4.56 a. Ben Bitdiddle が監督している人すべての名前と住所 (and (supervisor ?x (Bitdiddle Ben)) (address ?x ?y)) 実行結果 ;;; Query [...]…続きを読む

問題4.55 – SICP(計算機プログラムの構造と解釈)その228

問題4.55 a. Ben Bitdiddle に監督されている人すべて (supervisor ?x (Bitdiddle Ben)) 実行結果 ;;; Query input: (supervisor ?x (Bit [...]…続きを読む

4.4 論理型プログラミング、4.4.1 推論的情報検索 – SICP(計算機プログラムの構造と解釈)その227

プログラムが実際に動かないとつまらないので、今回も先に評価器を実装する。 "4.4.4 質問システムの実装" からの手続き群を丸写しする。 stream.scm、put、get の各手続きは3章で利用 [...]…続きを読む

問題4.54 – SICP(計算機プログラムの構造と解釈)その226

問題4.54 pred-value が false の場合に失敗継続を呼び出す。 (define (analyze exp) (cond ((self-evaluating? exp) (analyze-self-eva [...]…続きを読む

Gauche で CSV 形式のデータの重複するカラムのあるレコードを削除する

CSV ファイルのレコードに重複するカラムがある場合に、そのレコードを削除する Gauche スクリプト。 以下のコードでは *check-column-index* を定義して2番目のカラムでの重複をチェックしている。 [...]…続きを読む

Gauche で CSV 形式のデータをソートする

Gauche でクイックソートを利用して CSV 形式のデータをソートする。 クイックソートについては、"M.Hiroi’s Home Page / お気楽 Scheme プログラミング入門&quo [...]…続きを読む

Gauche で CSV 形式のデータを読み込む

make-csv-reader で、入力ポートを引数とする手続きを作る。 この手続きはポートからレコードを1つ読み込み、フィールドのリストを返す。 port->list を使って、返されたフィールドのリストをリスト [...]…続きを読む

問題4.53 – SICP(計算機プログラムの構造と解釈)その225

問題4.53 (amb) があるために、if-fail の第1引数はバックトラックを繰り返して prime-sum-pair により全ての組み合わせを探索する。 また、permanent-set! で pairs にセッ [...]…続きを読む
Page 1 of 41234
↑ページの先頭へ