タグ

schemeに関するjoan9のブックマーク (99)

  • Write Yourself a Scheme in 48 Hours - Wikibooks, open books for an open world

    Write Yourself a Scheme in 48 Hours is a featured book on Wikibooks because it contains substantial content, it is well-formatted, and the Wikibooks community has decided to feature it on the main page or in other places. Please continue to improve it and thanks for the great work so far! You can edit its advertisement template. This book proceeds at a very brisk pace, which might occasionally lea

  • 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 - あどけない話
  • drop して take すればリストに窓が開く

    激しく時代遅れな話題ですが…… [1,2,3,4,5] が与えられたとき [[1,2][2,3][3,4][4,5]] を返すような関数を定義せよ http://valvallow.blogspot.com/2011/02/12345-12233445.html これは、窓をガラガラっと動かしながらリストを覗く、という問題です。ようするに、こういう話(n = 3 の場合)。 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9リストに窓を作るには、drop して take するのが簡単です。窓をガラガラっと動かすほうは、この問題の場合にはリストを作ることになっているので、unfold 系の高階関数を使えばよいでしょう。Scheme よりすっきり書けるので Haskell で書きます。import Da

  • 48時間でSchemeを書こう - Wikibooks

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

  • JavaScriptはSICPの影響を受けて開発した - ヤドカリデンキ商会(ブログ版)

    JavaScriptの開発者であるBrendan Eichのブログに書いてありますね。 As I've often said, and as others at Netscape can confirm, I was recruited to Netscape with the promise of "doing Scheme" in the browser. At least client engineering management including Tom Paquin, Michael Toy, and Rick Schell, along with some guy named Marc Andreessen, were convinced that Netscape should embed a programming language, in source form, i

    JavaScriptはSICPの影響を受けて開発した - ヤドカリデンキ商会(ブログ版)
  • http://shibuya.lisp-users.org/2011/10/23/tt7lt7/

  • OSX に Mosh をインストール - higepon blog

  • はてなブログ | 無料ブログを作成しよう

    台北市立動物園と迪化街めぐり 子連れ台湾#5 年越し台湾旅行5日目、レジャーや友人との事を楽しむ日です。前日の様子はこちら www.oukakreuz.com 台北市立動物園へ パンダ館 パンダが見られるレストラン 迪化街へ 林茂森茶行でお茶を購入 小花園で刺繍グッズを購入 黒武士特色老火鍋で夕 台北市立動物園へ 松…

    はてなブログ | 無料ブログを作成しよう
  • Scheme:マクロ:anaphoric ifの代替

  • syntax-rules で anaphoric if - 月の塵

    SchemeR5RS の syntax-rules で書けないマクロの例としては、 anaphoric if のような、暗黙の束縛を導入するものがよく挙げられる。 (aif (assoc foo alis) (cdr it) ; assoc の結果が it に束縛される #f) その一方で『LET OVER LAMBDA Edition 1.0』では How to Write Seemingly Unhygienic and Referentially Opaque Macros with Syntax-rules (PDF) を引き合いに出しつつ「さまざまな Scheme 仕様の改訂版で仕様化されている健全なマクロシステムであっても、なお多くの興味深い捕捉問題に対して脆弱であることが示されている」と言っている。当に syntax-rules は脆弱なのだろうか? syntax-rule

  • Scheme:Schemeプログラマのレベル10

    emeitchさんのリクエストより。元ネタは Perlプログラマのレベル10。 私家版、Schemeプログラマのレベル10 くれぐれも気にしないように。 レベル0 SchemeとかLispとかいうカッコだらけですごくわかりにくい言語があることは知っているが、 最強とか主張する信者がいるらしいのでなるべく関わらないようにしている。 EmacsLisp?もその親戚らしいけどコードを見ただけでくらくらする。 でも便利なマクロは自分の.emacsにコピペしている。 レベル1 Schemeに関するwebサイトを見たり、大学の講義での説明とかを聞いて、 factorialとかappendとかreverseとかを書いたり、 ネストした木構造のノードの数を数えたりできる。 でもそれが何の役に立つかわからない。こんな言語で実用的な プログラムが書けるなんて信じられない。 カッコの位置を間違えて動かないプロ

    Scheme:Schemeプログラマのレベル10
    joan9
    joan9 2010/12/04
  • Emacs Lisp

    Lisp は「S式」だという説明をよく聞く。 でも、今どき何がS式なのか分っている人は少ない。 そもそも、「M式」と区別するためにS式という言葉が用いられたのだから、 M式を口にする人がほとんどいない今、 わざわざS式という必要もないように思う。 括弧をたくさん使っていたり、 ポーランド記法を使っていることは、S 式の質ではない。 S式とは、データと関数が同じように書ける表現形式のことである。 M式ではデータと関数に異なる表記方法が用いられていたから、 同じように表現できることは画期的だったのだ。 しかし、Lisp ではデータと関数が同じように表現できることは当たり前だから、 今の時代 S 式なんて言葉を使う必要もない。 データと関数が同じであるなら、データを関数として呼び出したくなる。 たとえば、以下のようにだ。 (set 'foo (lambda (x) (+ x 2))) (foo

  • Gauche > Archives > 2010/10/06

  • ((Pythonで) 書く ((さらに良い) Lisp) インタプリタ)

    ((Pythonで) 書く ((さらに良い) Lisp) インタプリタ) Peter Norvig / 青木靖 訳 前のエッセイでは、90行のPythonコードでシンプルなLispインタプリタを書く方法を示した(lis.py)。このエッセイでは、3倍込み入っているが、より完全なlispy.pyを実装しよう。それぞれの節で1つの機能追加を扱っている。 (1) 新しいデータ型 - 文字列、論理型、複素数、ポート Lispyへの新しいデータ型の追加は3つの部分からなる。データの内部表現、それを扱う手続き、読み書きのためのシンタックスだ。ここでは4つの型を追加する(入力ポート以外はPythonのネイティブ表現をそのまま使う)。 文字列 文字列リテラルはダブルクォーテーションで囲まれる。文字列の中で \n は改行を、\" はダブルクォーテーションを意味する。論理型  構文 #t と #f はTrue

  • ((Pythonで) 書く (Lisp) インタプリタ)

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

  • ((Rubyで) 書く (Lisp) インタプリタ) - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 ((Rubyで) 書く (Lisp) インタプリタ) : melborne.github.com - Peter Norvigさんの((Pythonで) 書く (Lisp) インタプリタ) という記事(青木靖さん訳)がすごい 100行ほどのPythonコードで Schemeのインタプリタの基部分を書いている Pythonのコードは見た目がRubyのコードとよく似ているので Rubyしか知らない僕でも何となく読める この記事を解読してRuby版Schemeインタプリタを書いたら インタプリタ Pyhon Scheme それからRubyのことも もう少し分かるようになるかもしれない こんなお得な勉強方法はないぞ きっと そんなわけで... 以下では上記記事を参照し

    ((Rubyで) 書く (Lisp) インタプリタ) - hp12c
  • Island Life - SICPのSchemeコード

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

    Island Life - SICPのSchemeコード
  • Island Life - Common LispとScheme

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

    Island Life - Common LispとScheme
  • Tumblr

    Tumblr is a place to express yourself, discover yourself, and bond over the stuff you love. It's where your interests connect you with your people.

    Tumblr
  • Schemeのマクロ - Island Life

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

    Schemeのマクロ - Island Life