タグ

schemeとlispに関するjjzakのブックマーク (116)

  • 本を読む FizzBuzzとGaucheで学ぶ遅延評価の基礎の基礎

    先週、仲間内で初心者向けRuby on Rails講座ってのを開く手伝いをしました。講座自体はさておき、懇親会のときに講師の人が、「Lispを勉強して、遅延評価で無限リストとかやってみたい」というようなこと(それだけじゃないけど)を言っていました。そこで、基というか、教科書まんまな説明をしてみます。ほとんど、特定1人対象の内容です 以下の例はScheme(Gauche)によります。 リストのn番めの要素を取り出す手続き まず、回り道ですが、リストのn番めの要素を取り出す手続きnthを定義してみます。FizzBuzz問題が1オリジンなので、ここではnthを1オリジンで定義してみます。Schemeの説明を省略すると、超単純なコードは以下のような感じかなと思います。 (define (nth lst n) (if (= n 1) (car lst) (nth (cdr lst) (- n 1)

  • Kawaでかいたプログラム

    (define primitive-procedures (list (list 'car car) (list 'cdr cdr) (list 'cons cons) (list 'string->list string->list) (list 'null? null?) (list 'list list) (list '+ +) (list '* *) (list '/ /) (list '< <) )) (define (primitive-procedure-names) (map car primitive-procedures)) (define (primitive-procedure-objects) (map (lambda (proc) (list 'primitive (cadr proc))) primitive-procedures)) (define (ini

    jjzak
    jjzak 2009/02/25
    javaで書かれたSchemeの処理系Kawaで書いたプログラムをひたすらのせていくブログ
  • 関数型日記(仮)

    しょぼい組み込みHW屋の私が現実逃避のため関数型言語の勉強を始めました.それはそうと,VdGG観てきました.peter hammillが神すぎて困りました.次も観るぞ! Lat式ミク様を表示させるために,なにより目がないと怖いのでw テクスチャマッピングを実装しました.さらに,マルチテクスチャでトゥーンレンダリングもなんとなくそれっぽくなるように実装しました.どうもレンダリング結果が一部微妙なので今後デバッグしますが,まずはソレっぽい出来なのでひと段落させます. テクスチャ関連に関しては,完全に教科書どおりのコーディングになっています. glTexParameterxで,TEXTURE_WRAP_S/TをGL_REPEATに,GL_TEXTURE_MAG_FILTER/MIN_FILTERをGL_LINEARに設定 glPixelStoreiでGL_UNPACK_ALIGNMENTに1を指

    関数型日記(仮)
  • 環境設定例集 - sicpstudygroup @ ウィキ

    SICPを読んでゆく上で必要なScheme実行環境についての設定例集です。 なんだか役に立ちそうな事柄を知っていたら誰でも書き込んでいってください。 Scheme処理系(R5RS準拠)とそれぞれの設定 GaucheGaucheは.gauchercというファイルを起動時に読み込む。なのであらかじめ読み込んでおきたいファイルなどがある場合、そのファイルに書き込んでおくと何かと便利。by iwk Mit Scheme TUT Scheme Guile Emacsの設定 viper-modeSchemeはvimよりもEmacsを使うほうが何かと便利であるので普段Vimを使う人であってもEmacsを使う必要が出てくる。しかし、EmacsとVimはなにかと根的に違うのでフラストレーションがたまりやすい。そのフラストレーションを少し解消するのがviper-mode。EmacsにViのモードのシステムを

    環境設定例集 - sicpstudygroup @ ウィキ
    jjzak
    jjzak 2009/02/15
    Scheme処理系(R5RS準拠)とそれぞれの設定
  • Lispで中置記法 - リリカル☆Lisp開発日記

    jjzak
    jjzak 2008/12/22
    Lispで中置記法
  • みずぴー日記

    JSXの特徴は、トップページにも書いてあるとおり「faster, safer, easier」の3つです。安全性とか簡単さについては人とか状況によって様々な定義や意見がありますが、唯一Fasterだけは客観的に測れます。 しかしJSXと速度については、トップページにあるBox2Dとshootingのデータ*1とAOBench on JSXぐらいしかありません。 というわけでWebkitで使われているSunSpider 1.0.2 JavaScript BenchmarkをJSXに移植してJavascriptと速度を比較してみました。*2 環境 sunspider Benchmark for JSX - JSX版ベンチマーク Sunspider Benchmark for Javascript - Javascript版ベンチマーク GitHub - mzp/sunspider-jsx: s

    みずぴー日記
  • cranebirdの日記

    data Reg = Zero | At | V0 | V1 | A0 | A1 | A2 | A3 | T0 | T1 | T2 | T3 | T4 | T5 | T6 | T7 | S0 | S1 | S2 | S3 | S4 | S5 | S6 | S7 | T8 | T9 | GP | SP | FP | RQ | PC deriving (Eq, Ord, Show, Enum, Bounded) data Insn = Add Reg Reg Reg | Sub Reg Reg Reg | J Word deriving (Eq, Ord, Show) data PseudoInsn = Pseudo [Insn] data Cell = W Word | I Insn deriving (Eq, Ord, Show) data VM = VM (Map.Map Reg Cel

    cranebirdの日記
    jjzak
    jjzak 2008/10/06
    Scheme Compiler の勉強
  • call/cc 入門 (Coroutine with call/cc) - MAYAH

    call/cc を使って簡単な Coroutine を作ります。call/cc 入門だと思ってもらえれば幸いです。 coroutine とは ここでは coroutine を「実行の途中でリターンでき、さらにそこ(実行の途中)から再開することが出来る何か」の意味で使用します。適当な疑似言語で書くと次の通り。関数の途中でのリターンを suspend(), 途中からの再開を resume() で表すことにします。 ここでは、これを scheme の call/cc を用いて表すことを目指します。 call/cc とは call/cc とは、call-with-current-continuation という scheme の関数で、「現在の継続(current continuation)を生成し、それを関数に渡してその関数を実行する」ものです。読者の殆どは「継続」についてよく知っているかもしれ

  • 大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係(その2)

    大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係(その2):プログラミング言語の進化を追え(1/3 ページ) 前回に引き続き、Scheme言語の処理系、Gaucheを開発している川合史朗氏が、クロージャの機能を検証し、関数型言語とオブジェクト指向言語の関係について解説していきます。今回は、クロージャとオブジェクトのより深淵を探求します。 抽象化ツールとしてのクロージャ C++的なオブジェクトの世界では、オブジェクトの実体とは「ひとかたまりの構造体としてメモリ上に置かれたインスタンス変数の値」にすぎません。オブジェクトのポインタを取れば、それは事実上、その構造体へのポインタを持っていることになります。クロージャを「関数」中心で見ていると、その実体は「オブジェクト」の実体とは異質なもののように思えるでしょう。 確かにクロージャのナイーブな「実装」は、関数ポインタと環

    大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係(その2)
  • Y.FUJITA::NOTEPAD::YPSILON

    いろいろ実験したいこともあり、WordPressでブログを作りました。新しく作った方は、個人的な軽い話題をメインにする予定ですが、よろしければどうぞお越し下さい m(_ _)m Y.FUJITA::NOTEPAD Mac App StoreでPinball Tristanが承認されたのでpromo codeでダウンロードしてテスト。すると・・・ xpchelper reply message validation: sandbox creation failed: 1002 Code identity not in ACL for container ~/Library/Containers/com.littlewingpinball.Pinball-Tristan-OSX/Data (if this is a self-signed app, see asctl(1) for how t

    Y.FUJITA::NOTEPAD::YPSILON
  • 83's : 属性リストへのアクセス

  • 「クロージャの定義」 - hidemonのブログ

    Java7のクロージャの提案者の一人,Neal Gafterのブログが大変参考になるので,ちょっと野良翻訳してみよう. クロージャの定義 Java 言語にクロージャを追加しようという我々の提案に関して混乱があるようだ.そもそも,Javaにはすでに無名インナークラスという形で,クロージャがあるのではないか? すでにあるものをなぜまた追加しようというのか? 一部の人々には,我々の提案には,クロージャとは関係ないものが含まれているように思われているようだ.例えば,control invocation 構文,null型,Unreachable, 型パラメータ付きthrows,関数インターフェイス型,「非ローカル」な returnなどがそうだ.Javapolisでの講演で,なぜこれらの機能が提案に含まれているのかを,これまで不可能だったことを可能にするための実用的な観点から説明したつもりだ.しかし,

    「クロージャの定義」 - hidemonのブログ
  • Scheme:マクロの効用

    普通のやつらの上を行けでLispにおけるマクロの効用が述べられているが, 「じゃあ具体的にマクロを使って『こりゃ便利だ』っていう例を見せてよ」 と言われてもなかなかすぐに出て来ない。 そこで、なんかいいマクロの使用例を思い付いたら書いてってみるコーナー。 通りすがりのマクロ初心者です。便利なマクロの具体例はすごく知りたいので、この項、期待してます。 Paul Graham「On Lisp」を読書中でなかなか良いけど、日語の解説があった方が理解が早まるので。 もくじ マクロを使う局面定型パターンの簡略化関数呼び出しのインライン展開の代用新しい構文による抽象化ミニ言語の埋め込み宣言的なコードに見せるコンパイル時の処理具体例クラス定義でのリーダーの生成リストの内包表記 (List comprehension)リストの構築他の処理系の移植 関連:Scheme:マクロの危険 マクロを使う局面 なん

    Scheme:マクロの効用
  • はてなブログ

    焼津観光では「さわやか」と巨大プリンをえ【グルメ】 東西に伸びる静岡県のちょうど真ん中あたりにある街、焼津市。2つの大きな港湾があり、カツオやマグロが名産となっている。 さてそんな焼津市に、先日ドライブがてら寄ってきた。比較的栄えている様子だったので、特にプランも立てずに行ったが、着いて早々気がついて…

    はてなブログ
  • FrontPage - メモ

  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • ネイルで失敗しないためのネイリスト選びの極意とは?

    新社会人になって、ついにネイルができるようになった!でも、初めてネイルサロンに行くときには、何を基準に選べばいいの?ネイリストさんは?そんな方が多いと思います。 今回は、初めてネイルサロンに行く方のために、ネイルサロン、ネイリストの選び方について解説します。 ホームページの内容を確認 始めてネイルサロンに行く方は、何を基準にすればいいか分からないと思います。 そんな方は、まずお店のホームページを見てみましょう。 そのときに確認したい点がいくつかあります。 メニュー内容や案内が明記されているか ネイルのデザインやカラーのサンプルが掲載されているか 店内の写真が掲載されているか ネイリストの専門知識や技術が紹介されているか 少なくとも、この程度は確認しておきたいでしょう。 ホームページに掲載されている情報から、自分が合いそうなネイルサロンを見つけてみるのが最初は良いでしょう。 しっかりとした電

  • SC: The SC Language System

    Japanese / English SC言語は,Common Lispで実装された,S式の(Scheme風の)構文を持つC言語です.たとえば,以下のようなCコード long sum(long *ar, int n){ long s=0; int i=0; do{ if (i >= n) break; s += ar[i++]; } while(1); return s; } を,SCでは, (def (sum ar n) (fn long (ptr long) int) (def s long 0) (def i int 0) (do-while 1 (if (>= i n) (break)) (+= s (aref ar (inc i))) ) (return s) ) と書くことができます. また,拡張SC言語から別のSC言語への「変形規則」

    jjzak
    jjzak 2008/06/15
    SC言語は,Common Lispで実装された,S式の(Scheme風の)構文を持つC言語です
  • Arc-users.jp - 日本の Arc ユーザのためのハブサイト

    YAPC::Asia 2008 で Michael Schwern は「SEO に有効な独自ドメインを取って、もっと Perl 初心者が集まりやすい nice な Perl の情報を集めたサイトを作れ!」といったそうです。そして「Perl-users.jp - 日Perlユーザのためのハブサイト」ができました。 これは Arc も同じではないのか? そう思って arc-users.jp ドメインを取り、ここに arc-users.jp を開始します。完全に perl-users.jp にインスパイアされています。当にありがとうございます。ノープランです。 ポリシー的な物 とりあえず、フォーラムで情報交換や日語で語り合う。 このサイトの想定する利用者層は、超初心者から超上級者まで。 たとえば Paul Graham が、いきなり言語仕様を変更したとしても、しっかり初心者層にリーチし、

  • 松村技研

    加速するテクノロジーの進化で激変する世界。イノベーションの混乱期には、さまざまな摩擦も生じます。 わたしたちの文明は、当により豊かに発展しているのでしょうか? 文明の発展の裏には、見落とされがちな課題で溢れています。見落とされがちな課題は、身近な不満へと変わっていきます。 松村技研は、身近な不満を解決することで、テクノロジーの進化だけではなく、人類の進化への貢献を目指します。 ひたすら自分らしく自分の当の心の適した生き方を追求しよう。可能性を信じて、自由を超えていこう。 想像力で突き抜ける想像できないものを想像しよう。経験に意味を、知識に理解を、想像を超えていこう。 刃を研ぐ自分自身に投資しよう。技術者として、人間として、生物として、存在を超えていこう。