タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

lispに関するanotherのブックマーク (2)

  • Route 477(2008-06-12)

    ■ [lisp] 純Lispは関数5つだけでどうやってチューリング完全になるのか? Wikipediaの「純Lisp」の項を見ると、5つの基関数だけでチューリング完全だよーみたいなことが書いてある。 でも実際にはcar/cdr/cons/eq/atomだけじゃ分岐も再帰もできなくね?という疑問をどっかで見て、リンクされてる論文を 見てみたりもしたけどよく分かんなかったのだけど、 id:kazu-yamamotoさん の講演資料を見てようやく分かった。 5つの関数 car cdr cons eq atom 2つの特殊形式 quote cond 関数定義の機能 lambda label (defineのこと) 要するに、condとかは特殊形式だから「5つの基関数」には入らないと(笑)。まぁそりゃそうだけどさ。 117 https://www.google.co.jp/ 48 http://

    Route 477(2008-06-12)
    another
    another 2008/09/30
    「condとかは特殊形式だから「5つの基本関数」には入らない」あー、そういうことだったんですか。/ quote, cond, lambda, label (defunとかdefineのこと)。
  • Scheme どう書く?的 - higepon blog

    整列済みの number のリストがある。 '(1 3 4 5 6 12 13 15) このようなリストで数が連続している部分は '(1 2 3) -> '(1 . 3) のように両端のみを書くような記法を導入する。 最初の例のリストであれば以下のようになる。 '(1 (3 . 6) (12 . 13) 15) このようなリストの変換をするコードを書きたい。 自分の答えは↓だが、いまいちスマートではない。もっとかっこいいのを思いついたら教えてください。 (define (compact-number-list lst) (define (exact-next-number? a b) (cond [(and (number? a) (number? b)) (= (- b a) 1)] [(and (pair? a) (number? b)) (exact-next-number? (cd

    Scheme どう書く?的 - higepon blog
    another
    another 2008/09/30
    (defun a(f z l)(cons(if(= f z)f(cons f z))l)) (defun g(l x)(s(car l)(car l)(cdr l)x)) (defun s(f z l i)(cond((eq()l)(a f z i))((=(car l)(1+ z))(s f(car l)(cdr l)i))(t(g l(a f z i))))) (defun c(l)(reverse(g l()))) (c'(1 3 4 5 6 12 13 15)) ; in Emacs Lisp. / irieさんに負けた。
  • 1