Movatterモバイル変換


[0]ホーム

URL:


はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

タグ

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

タグの絞り込みを解除

schemeに関するsiroccoのブックマーク (83)

  • つくって学ぶプログラミング言語 RubyによるScheme処理系の実装

    プログラミングをより深く理解するための近道は、プログラミング言語を実装してみること。SchemeのサブセットをRubyで実装していくことで、プログラムはどう実行されるのか、その基がはっきり分かります。 ※書はCC BYにより配布されています。上記の「買い物かごへ」ボタンからは有償で購入できます。無料で入手したい場合は、下記リンクよりダウンロードしてください。なお、有償版も無償版も内容は同一です。 EPUB版PDF版内容紹介プログラムは書けても、その基礎となっている計算機科学(コンピュータサイエンス) の理解があやふやな人を、著者は多く見てきました。プログラミングに自信があるという人が、もう一歩先に進める道を示したいというのが、この文書を書き始めた動機です。 この文書を読むことで次の効果が得られることを期待しています。 プログラミング言語とは何かを深く理解することで、プログラミングのレベ

    つくって学ぶプログラミング言語 RubyによるScheme処理系の実装
    sirocco
    sirocco2013/04/17非公開
    「48時間でSchemeを書こう」ってのもあります。Haskell ですけれど。http://ja.wikibooks.org/wiki/48%E6%99%82%E9%96%93%E3%81%A7Scheme%E3%82%92%E6%9B%B8%E3%81%93%E3%81%86
    • Island Life - プログラマとGnuCashと複式簿記

      About 南の島のプログラマ。 たまに役者。 Practical Schemeの主。 WiLiKi:Shiro 最近のエントリ 米国の大学進学無限cxr高校受験Defense振り返ってみると2019年は色々学んで楽...覚えるより忘れる方が難しい(こともある)眼鏡のつると3DプリンタIris Klein Acting ClassSAG-AFTRA conservatory: Voice Acting創作活動って自分を晒け出さねばならないと...More... 最近のコメント shiro on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/14)1357 on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/01)ベアトリーチェ on ハイポハイポハイポのシューリンガン (2022/04/02)ベアトリーチェ on ハイポハ

      Island Life - プログラマとGnuCashと複式簿記
      • 48時間でSchemeを書こう - Wikibooks

        Web上にあるほとんどのHaskellチュートリアルは言語についてのマニュアルのような教え方をしようとしているようです。それらには言語の文法、概念が少し載っていて、読者に対話環境でいくつかの簡単な関数を作るように指示します。よく機能する有用なプログラムの書き方は大抵最後にまわされるか、そもそも省かれていたりします。 このチュートリアルは違う方針を取ります。コマンドライン引数解析から始めて、完全に機能するR5RS Schemeのかなり大きなサブセットの実装まで進みます。道すがら、Haskellの持つI/O、mutable state、dynamic typing、エラー処理、そして構文解析機能を学びます。このチュートリアルを終える頃には、あなたはHaskellとScheme両方がかなり良くわかるようになっているはずです。 このチュートリアルの対象読者は主に以下の2種類です。 LispかSch

        sirocco
        sirocco2012/12/28非公開
        日本語版の「48時間でSchemeを書こう」。私が見たときはそれほど翻訳されていなかった。
        • 記事一覧 - sirocco の書いてもすぐに忘れるメモ

          PythonwxPythonGUIビルダwxFormBuilderを使って、テストアプリを作ってみました。 なぜ、wxPython なのか。 wxWidgets を使っていますので、WindowsmacOSLinux で動かすことが出来るからです。 【環境】Python 2.7.8wxPython 2.8 wxFormbuilder 3.…

          記事一覧 - sirocco の書いてもすぐに忘れるメモ
          sirocco
          sirocco2012/12/28非公開
          "「Write Yourself a Scheme in 48 Hours」 を写経してみる" (16)までありますが、(14)が2回・・・Orz かなり忘れてしまっています・・・Orz
          • もうひとつの Scheme 入門

            勾配の緩やかな初心者向け Scheme 入門ページです。 コンピュータは使ったことがあるが、プログラミング経験があまりない人を想定しています。 Scheme の解説はすでに山ほど優れたものがありますが、あえて解説記事を書いてみました。 Scheme のような抽象的な話題は波長が合えばすんなりと理解できますが、あわないと全く理解できません。 他の解説を読んで今ひとつよく理解できなかった人は試しに読んでみてください。 この記事の目標はコンピュータ科学の教科書の決定版である SICP を読める程度の Scheme の知識を提供することです。 目次: 処理系のインストール Scheme を電卓代わりに使う リストを作ろう 関数を定義しよう 分岐 局所変数 繰り返し 高階関数 入出力 代入 文字、文字列 シンボル型 連想リスト、ハッシュ表 ベクトルと構造体 構文の定義 (マクロ) 継続 遅延評価 非

            sirocco
            sirocco2012/05/22非公開
            Rubyを深く理解するには Lisp を知るべきだという言葉を聞いて、ここで Scheme を学習しました。今見たら半分くらいしか学習ができてません・・・Orz
            • HaskellでScheme - あどけない話

              ついに、Write Yourself a Scheme in 48 Hoursをやりました。 分ったこと 以下のことが、なんとなく分ったり、少なくともどう使うのかを体験できました。 エラー処理 正常系の値と異常系の値を包含する型を作って、Scheme の関数はそれを返すようにする モナド変換子 クロージャの実装 コードの問題点 ファイルとして置いてあるコードですが、以下のような小さな問題があります。 2箇所Texのコマンドが残っている parseString = do char ;\textcolor{string}{\texttt{'"'}}; cdr の定義が間違っている cdr [DottedList (_ : xs) x] = return $ DottedList xs x cdr [DottedList [xs] x] = return x は誤りで、正しくはこう。 cdr [

              HaskellでScheme - あどけない話
              sirocco
              sirocco2011/10/28非公開
              「Write Yourself a Scheme in 48 Hours」をやっているのだけれども、cdr の定義が間違っているらしい。
              • sirocco
                sirocco2011/10/24非公開
                equal?は,評価した結果が等しいような2つの引数が与えられたとき#tを返す.
                • サービス終了のお知らせ

                  サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

                  • The Little Schemer - あどけない話

                    最近、Scheme がちょっとした流行になっているようです。 Scheme を勉強しようと思っている人に、僕が声を大にして薦めたいは、「The Little Schemer」です。 The Little Schemer (The MIT Press) 作者: Daniel P. Friedman,Matthias Felleisen出版社/メーカー: The MIT Press発売日: 1995/12/21メディア: ペーパーバック購入: 10人 クリック: 137回この商品を含むブログ (91件) を見る 1章から7章にかけて、たくさんの例題とともに「再帰」が説明されています。「再帰の再帰」も勉強できます。実際、「このを読んで人生が変わった」という感想を何回か聞いたことがあります。なぜなら、物事を再帰で考えられるようになるからです。再帰が分らない人は、ぜひ読んで下さい。 8章は、「ク

                    The Little Schemer - あどけない話
                    sirocco
                    sirocco2010/10/22非公開
                    買ったけど読んでいない・・・Orz 翻訳版が出たらしい・・・。全部再帰で書くというのはリストの処理に合っているし、素晴らしい。これにパターンマッチがあるととても楽。
                    • 祝 「Scheme 手習い」復刻 - あどけない話

                      めでたい! 「Scheme 手習い」が復刻しました。正確に言うと、復刻ではなく、新しい版に基づいた新しい訳です。 Scheme手習い 作者: Daniel P. Friedman,Matthias Felleisen,元吉文男,横山晶一出版社/メーカー: オーム社発売日: 2010/10/22メディア: 単行(ソフトカバー)購入: 5人 クリック: 129回この商品を含むブログ (34件) を見る 以前、マグロウヒル出版から出版されていた「Scheme手習い―直感で学ぶLisp」は、"The Little Lisper" の訳です。内容が、Common Lisp でもなく、Scheme でもない Lisp の方言によって書かれているのに、邦題に Scheme が入っていたのは、このの唯一の欠点だと僕は感じていました。 今回は、"The Little Schemer" の訳です。原書も訳

                      祝 「Scheme 手習い」復刻 - あどけない話
                      sirocco
                      sirocco2010/10/21非公開
                      kazu-yamamotoさんの「Scheme 手習い」の書評。
                      • ((Pythonで) 書く (Lisp) インタプリタ)

                        Peter Norvig / 青木靖 訳 このページには2つの目的がある。コンピュータ言語の実装について一般的な記述をすることと、Lispの方言であるSchemeのサブセットをPythonで実装する具体的な方法を示すことである。私はこのインタプリタをLispy (lis.py)と呼ぶ。何年か前に私はJavaとCommon LispでSchemeインタプリタを書く方法を示した。今回の目標は、アラン・ケイが「ソフトウェアのマクスウェル方程式」と呼んだところの簡潔さと取っつきやすさを可能な限り実現するということだ。 SchemeのサブセットLispy の構文と意味論 コンピュータ言語の多くは様々な構文的な決まり(キーワード、中置演算子、カッコ、演算子優先順、ドット記法、セミコロンなど)を持っているが、Lisp族言語の1つとして、Schemeの構文はすべてカッコ付きの前置記法であるリストを基とし

                        • ホワット・ア・ワンダフル・ワールド gauche の入出力 port を C から使う

                          以下メモ. やりたいこと.C 文字列 (ヌル終端) を Scheme コード片として評価し,結果を C 文字列の形で受け取る. C 文字列 (とりあえず,コマンドライン引数として与えている) を評価して,結果を標準出力に書き出すまではできた. $ gauche-config -I -I'/usr/lib/gauche/0.8.7/include' $ gauche-config -L -L'/usr/lib/gauche/0.8.7/i486-pc-linux-gnu' $ gauche-config -l -lgauche -ldl -lcrypt -lutil -lm -lpthread $ tcc -I/usr/lib/gauche/0.8.7/include /dev/stdin -L/usr/lib/gauche/0.8.7/i486-pc-linux-gnu -lgauche

                          • Microsoft - Official Home Page

                            すべてのMicrosoft 製品 GlobalMicrosoft 365 Teams CopilotWindows Surface Xbox 新生活応援セール 法人向け サポート ソフトウェアWindows アプリAI OneDriveOutlook SkypeOneNoteMicrosoft TeamsPC とデバイス Xbox を購入する アクセサリVR & 複合現実 エンタメ Xbox Game Pass Ultimate Xbox とゲームPCゲームWindowsゲーム映画テレビ番組 法人向けMicrosoft CloudMicrosoftSecurity Azure Dynamics 365 一般法人向けMicrosoft 365Microsoft IndustryMicrosoft Power PlatformWindows 365

                            • http://www010.upp.so-net.ne.jp/okshirai/scheme-20070402222203.txt

                              Scheme 過去◇現在◇未来 前編 bit/April 1996/Vol. 28, No.4 p4~9 Guy L. SteeleJr. 訳 井田昌之 ---------------------------------------- はじめに ――― 訳者より Schemeの開発者の一人であるGuy L. Steele博士が、1995年7月10日にLisp協議 会のシンポジウムで講演を行なった。場所は青学会館である。稿は、その講 演を元にまとめたものである。その内容は、開発の当事者でしか語れないもの が多く、たとえば、Schemeの発端のいきさつには、Carl Hewitt先生も大きく関 係している点など、訳者にとっても、なるほどと新鮮で興味深いものであった。 当時のMIT人工知能研究所のホットな様子を垣間見た気がした。文では敬称を略した。登場人物の肩書はどんどん変化したので、

                              • Chaton

                                Chaton (pronounced like [sha-ton], a 'kitten' in French) is asimple Comet-based Webchat server written in Gauche. Originallyit is developed to host a successor of Gauche chat room on Lingr ( http://www.lingr.com ), when Lingr announced to terminateits service. Although Chaton neveraims at serving in such a large scale and with tons of features like Lingr, the "look and feel" of the interface s

                                sirocco
                                sirocco2009/09/03非公開
                                Gaucheで書かれた簡単な Cometベースの Webchatサーバ
                                • Haskellerが勘違いして『Scheme初心者へのアドバイス』を書いてみた - HaHaHa!

                                  Scheme初心者へのアドバイスを書いてみる - ヤドカリデンキ商会(第一倉庫)にインスパイアされて書いてみた. ネタだからね真に受けないでね. お題はServererror トップダウンに考える 部品からいきなり作ってはいけません.その部品にひきずられてしまいます.トップダウンに考えます. トップレベルの駆動手続 run を考えましょう.run は情報をもらって,結果を出力というのでよいでしょう.入力情報は対戦回数,結果は対戦結果の集計になるかな. (define (run n) 'undefined) とりあえずインタフェースはこれでよし.で,n 回で対戦 game を繰り返すから,くりかえし回数,対戦結果の集計の初期値,そして対戦手続があればよさそう. (define (run n) (iter/count game '(0 0 0) n))) (define (iter/coun

                                  Haskellerが勘違いして『Scheme初心者へのアドバイス』を書いてみた - HaHaHa!
                                  • カリー化関数 (curried function) について - (new Hatena).blog()

                                    SML という言語のテキストを読んでいて、これまで自分がカリー化という言葉をよく理解せずに使っていたことに気付きました。 どうやら部分適用の概念と混同していたようです。 一般に、ML や Haskell のような関数型言語においては、カリー化とは n 要素タプルを取る関数 fun f (x,y) = z を、n 引数関数 fun curried_f x y = z に変形することと同義らしいです。(n > 1, z は適当な式とします) ML 等では n 引数を取る関数 fun f x1 x2 ... xn = z (* 1 *) は、実体としては次のように1引数関数が n 個連なったものとして定義されています。 val f = fn x1 => fn x2 => ... fn xn => z (* 2 *) (1 と 2 は同値であり、1 は 2 の構文糖衣に過ぎません) f は、最初の

                                    カリー化関数 (curried function) について - (new Hatena).blog()
                                    • ML っぽいカリー化関数を定義するマクロ - (new Hatena).blog()

                                      ML とか Haskell のコードを読む時に私がどうしても憧れてしまうのが、自動的にカリー化定義される関数です。 Scheme にもカリー化関数を定義する構文自体は存在します (処理系にもよるでしょうが)。 例えば、このようなラムダ式のネストで定義された関数を (define add3 (lambda (a) (lambda (b) (lambda (c) (+ a b c)))))次のようなスタイルで短く書くことができるんです: (define (((add3 a) b) c) (+ a b c))でも全然自動的ではないですし、必ず定義した通りに適用しなければいけません: (((add3 1) 2) 3)2番目と3番目の引数を同時に与える、とかは出来ないわけです。 そこでちょっと知恵をひねりまして、case-lambda を使って、あらゆる関数適用のパターンに応じたラムダ式をあらかじめ

                                      ML っぽいカリー化関数を定義するマクロ - (new Hatena).blog()
                                      • Schemeでカリー化

                                        Haskellの有名な特徴として、関数が勝手にカリー化されるという点があります。 要するにHaskellの関数は常に部分適用可能になっていて、f foo bar bazという関数適用は(((f foo) bar) baz)と解釈されています。これは非常に強力な機能で、汎用的な関数を目的に合わせて簡単に特殊化することができます。 Schemeやその他のLispでは、引数は必ず同時に与えないといけないので、カリー化したものを作ろうとするとクロージャを使って(define f (lambda (x) (lambda (y) (lambda (z) ...))))とでもしなければなりません。しかも呼び出すときには(((f foo) bar) baz)と、1つずつ順番に適用する必要があります。 私が欲しいのは、"(Haskellが透過的にやっているように)与えられた引数を先頭から順に束縛し、足りない

                                        • ちょっと変わったLisp入門 - @IT

                                          Lispの一種であるScheme。いくつかある処理系の中でも気軽にスクリプトを書けるGaucheでLispの世界を体験してみよう(編集部) 「Gaucheでメタプログラミング」と題して、これからGaucheを使ったプログラミングの連載を書かせていただきます吉田裕美です。よろしくお願いいたします。 Gaucheとは 今回の連載で取り上げるGaucheはハワイ在住の日ハッカー、川合史朗さんが作った、Lispの一種であるSchemeのオープンソース処理系です。 Gaucheの特徴は、PerlRubyのように気軽に使える軽い処理系だということです。Perl同様に正規表現や文字列操作が行え、ちょっとしたツールの作成にも使えます。しかし、非常に強力なCommon Lisp風オブジェクトシステムを持ち、Lispならではのマクロに加え、Webやグラフィックスなどの豊富なライブラリも持っているので実用

                                          ちょっと変わったLisp入門 - @IT

                                          お知らせ

                                          公式Twitter

                                          • @HatenaBookmark

                                            リリース、障害情報などのサービスのお知らせ

                                          • @hatebu

                                            最新の人気エントリーの配信

                                          処理を実行中です

                                          キーボードショートカット一覧

                                          j次のブックマーク

                                          k前のブックマーク

                                          lあとで読む

                                          eコメント一覧を開く

                                          oページを開く

                                          はてなブックマーク

                                          公式Twitter

                                          はてなのサービス

                                          • App Storeからダウンロード
                                          • Google Playで手に入れよう
                                          Copyright © 2005-2025Hatena. All Rights Reserved.
                                          設定を変更しましたx

                                          [8]ページ先頭

                                          ©2009-2025 Movatter.jp