シュワルツ(シュウォーツ)変換 (Schwartzian Transform)

コレクションを操作する際に、各要素に変換を行った要素に基づいて操作を行うが、欲しい結果は変換を行った要素のコレクションではなく元の要素のコレクションである場合に利用する。 文字列の配列を大文字・小文字を無視してソートする場合を考える。 # 文字列の配列 ary = ["foo", "Bar", "baz", "HOGE&quot…続きを読む

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

問題4.61 最初の規則(rule)だけでは先頭からの2つの要素の隣接関係しか見つけられない。 2番目の規則(rule)によって連続する要素を再帰的に調べていく。 ; 調査対象リストの最初の 1, 2 番目の要素を next-to 関係とする。 (assert! (rule (?x next-to ?y in (?x ?y . ?u)))) ; 調査対象リストの内、2番目の要素以降のリストを調べる…続きを読む