タグ

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

  • 関連タグはありません

タグの絞り込みを解除

ProgrammingとLispとschemeに関するpochi-mkのブックマーク (5)

  • (Gauche)バブルソート - Code Aquarium

    今読んでいる数学ガールガロア理論がバブルソートにちょっとだけ触れていました。 考えてみるとバブルソートは何となく概要を知っている程度で、実装した記憶がありません。振り返るとバブルのつもりが結局挿入ソート的な物を書いて終わってることが多いような気がします。 そこで正式なバブルソートというものを調べてみました。 今回は、ベクタに適用すると、in place で破壊的にソートする関数を作ります。 1.二重ループでバブルソート (define (vector-bubble-sort! vec :optional (swap? default-swap?)) (define len (vector-length vec)) (do ((head 0 (+ head 1))) ((>= head (- len 1)) vec) (do ((i (- len 1) (- i 1)) (k (- len

    (Gauche)バブルソート - Code Aquarium
    pochi-mk
    pochi-mk 2014/10/18
    「インデックスをリストアップしてから1ループで処理」この発想はなかった...面白い。
  • R6RS Scheme で setf を書く - 月の塵

    Scheme(これは Lisp Advent Calendar 2012 の 16 日目の記事です)Scheme で Common Lisp の setf 風のものを実現するものに SRFI 17: Generalized set! があるが、この参照実装にはいくつか問題がある。ひとつにはゲッタとセッタの組を大域変数で管理しているのでゲッタとセッタの対応関係にモジュール性がないこと、もうひとつは手続き同士の同値性という RnRS の未規定部分に片足を突っ込んでいることである。R5RS 6.1 Equivalence predicates の定義によれば、同一の場所に格納されている手続きは同値(eqv?)である。すなわち、 (eqv? car car) は常に真である。したがって、 car に何らかのセッタを対応づければ、 car の値からそのセッタを見つけることができる。だがもう一方で e

    pochi-mk
    pochi-mk 2012/12/16
    定義に忠実に実装するよう考える、これ大事。深いなぁ。
  • Practical Scheme

    ->English 10/5/2001 初出 5/30/2002 追記 6/10/2002 英語版へのリンク追加 「プログラミング言語は満載した機能を特色の第一とするものではない。 あとになって機能の追加が必要と判明するような弱点と制限を取り除いて設計すべきである。」 (アルゴリズム言語Schemeに関する第五改訂報告書、犬飼 大訳 [1])。 言語の機能とライブラリ ポピュラーな言語に親しんできたプログラマの多くは、 Schemeに触れた時、こう感じるんじゃないか。 「一体こんなに機能の少ない言語で、どんなプログラムが書けるっていうんだ。」 Schemeの規格書はほんの50ページしか無い。 Schemeプログラマはそれを言語の簡潔さの証とかなんとか言ってるけど、 入出力は最低限のものしかないし、作ったファイルを消すことさえ出来ない。 文字列処理もC言語の標準ライブラリ以下じゃないか。 ス

    Practical Scheme
    pochi-mk
    pochi-mk 2012/10/05
    初出が 10/5/2001 なわけですね(今日は10/5/2012)。
  • JavaScript で Scheme 作った - にょきにょきブログ

    簡易 Scheme を JavaScript で実装した。基的な関数の呼び出しや定義が行える。 完全に再現したわけでは無いので、Scheme 方言言語 Tetorang と呼ぶことにしよう。 使用はこちら。 http://512bit.org/scheme/scheme.html Google Chrome で動きます。ぎりぎり FireFox でも動くかも。IE では多分動きません。 使い方 Scheme っぽい言語の REPL。 下部のテキストエリアに scheme 文を打つと、その文と実行結果が上に表示される。実行方法はテキストエリア上で Shift+Enter. 「Shift + Enter で実行」って文の右にグレーで数値が表示されていて、これは括弧の深さを表す。(テキストエリア上で (((()))) とか打つと動作がわかると思う。) この機能は括弧が多い scheme で、括

    JavaScript で Scheme 作った - にょきにょきブログ
  • sarabander/sicp-pdf · GitHub - tnoda-clojure

  • 1