タグ

ブックマーク / practical-scheme.net (4)

  • Scheme:リスト処理

    リスト処理の小技を書き留める。 数値リストのコンパクトな表現 single?pos+木の統合集合の統合リストの分解Quasiquote Magicリストへの要素の追加、削除ちょっと変わったリスト上の繰り返しmapl逆mapl与えられた木から、子→親への対応を作る木の統合 (親 子 孫 ひ孫 …) 数値リストのコンパクトな表現 ひげぽんさんのところより: 整列済みの number のリストがある。 '(1 3 4 5 6 12 13 15) このようなリストで数が連続している部分は '(1 2 3) -> '(1 . 3) のように両端のみを書くような記法を導入する。 最初の例のリストであれば以下のようになる。 '(1 (3 . 6) (12 . 13) 15) このようなリストの変換をするコードを書きたい。 ひげぽんさんの実装は上記エントリを参照。 Shiro (2008/09/25 03

    Scheme:リスト処理
    mzp
    mzp 2009/10/21
  • Scheme:多値

    多値の機能はR5RSになってから追加された、Schemeでは比較的新しい機能だ。 CommonLispやDylanにはある。 純粋な意味での多値、すなわちコンティニュエーションに一つ以上の値が渡るという意味での 多値を実装している言語は、メインストリームではあまり無いと思う。 ただ、多重代入(データストラクチャをdecomposeして複数の変数に代入する機能) があれば、ほとんど多値と同じことができる。RubyPythonにはこの機能がある。 そのため、多値の必要性に関しては大きな議論があり、Schemeコアな人々の中でも 意見が割れている。最近もcomp.lang.schemeで 大きなスレッドが立った。 個人的には多値はかなり頻繁に利用している。 このページでは主として使いどころに関していろいろ書いてみる。 突っ込み歓迎。 --Shiro 方法 - どうやって使う?現象 - どんな時

    Scheme:多値
    mzp
    mzp 2009/06/26
    多値が必要な理由について。効率と意味論の2つの理由がある
  • Top (Gauche Users’ Reference)

    Top This is a reference manual of Gauche, an R7RS Scheme implementation.

  • Lisp:よくある誤解

    Lispについてのよくある誤解と、その中にあるちょっとした真実 はてなの質問: プログラミング言語で最強(スケーラブル)なのは、 Lispだと思われます。 http://jp.franz.com/index.html しかし、 世間ではマイナー言語のようです。 なぜでしょうか。 についた回答のいくつかには、「Lispを少しだけかじった人がしがちな誤解」が 含まれてるようなので、それをネタに少し解説してみます。 ただ、誤解が生じるのは、やっぱりそれなりの理由があって、従ってその 誤解の中にも(条件つきの)真実が含まれていることがあります。 そのへんまでをも含めて考えてみましょう。以降、引用は回答からです。 Lispはスクリプト言語? 一昔前まで、これらのスクリプト系の言語は「とてつもなく遅い」のが嫌われる最大の要因でしたが、最近のコンピューターの性能向上でようやくRuby,Python,Li

    Lisp:よくある誤解
  • 1