タグ

schemeに関するkk6のブックマーク (28)

  • Scheme:call/ccと副作用

    c.l.sで興味深い議論が進行していたのでメモ。 purely functional Lisp + call/cc = ? 発端は、Nils M Holmの 「Purely functionalなマイLispにcall/ccをつけてみたよ」 という投稿。 それに対し、Schemeの大御所達から 「call/ccは、副作用を生じるよ」 と突っ込みが入る。 言い替えれば、「set!などの明示的な副作用オペレータを一切持たない purely functionalなLispに、call/ccを導入すると、それはもはや purely functionalではなくなる」ということ。 実例 これは簡単な例によって示すことができる。szgygによる例: (let ((f (lambda (x) (call/cc (lambda (k) k))))) (cons (f 0) (f 0))) (f 0)の2回

    Scheme:call/ccと副作用
    kk6
    kk6 2012/09/01
  • Monads in Scheme

    An example of a monadic programming in Scheme that juxtaposes Haskell code for a particular state monad with the corresponding Scheme code. Introduction This article sprang from a question posted on comp.lang.functional about building of trees whose nodes are tagged with unique integers. "Ideally every term/node has to have its id associated with it at construction time," the poster said. "An obvi

    kk6
    kk6 2011/12/24
  • UbuntuへSLIBを導入 - chanmanaの日記

    http://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3aFAQ#H-1wd28wz ↑を参考にしました。 まずは、apt-get。 apt-get install slib Gaucheのライブラリのパスを確認。 gauche-config --syslibdir 念のためバックアップ cp slib.scm slib.scm.default slib.scmを編集 chmod u+w slib.scm sudo emacs slib.scm 変更箇所は以下のとおり。 (define library-vicinity (let ((library-path (or ;; Use this getenv if your implementation supports it. (sys-getenv "SCHEME_LIBRARY_PATH

    UbuntuへSLIBを導入 - chanmanaの日記
  • Schemeインタプリタ作ったので実装の方針とか苦労した点などまとめてみる(いろいろ追記 - IT系で覚醒めたい

    一昨日ブログに書いたPicricというScheme処理系について、プログラミングしたときの方針とか、そのへんをまとめてみます。 Scheme(Lisp)の処理系は実装が簡単簡単と言われる割にその実装方法についてまとめられたサイトがほとんどなくて、僕自身調べるのにかなり苦労しました。もうこれ以上僕みたいな犠牲者を出したくありません。 とはいえいろいろ間違ってる箇所もあるかと思いますので気づいた方はコメントをおねがいします。 まずPicricについて。 実は昔々(今年春)NLispというものを作った。 Pythonで実装されたSchemeのサブセット。 継続が実装されていなかった。 今度こそは継続を!pythonからも脱脚して一人前になりたい! そんな動機で開発を始める。 名前の由来はピクリン酸。 ピクリン酸はそのやたら可愛い名前にも関わらず実はものすごい爆薬。 そういう「意外とすごい」インタ

  • WeScheme

    Start Coding ...without being able to save ...to access your programs Looking for a curriculum, too?

    kk6
    kk6 2011/06/28
  • Arc Forum | Arc

    install | tutorial | forum This site is about Arc, a new dialect of Lisp. Arc is designed for exploratory programming: the kind where you decide what to write by writing it. A good medium for exploratory programming is one that makes programs brief and malleable, so that's what we've aimed for. This is a medium for sketching software. Arc is unfinished. It's missing things you'd need to solve some

    kk6
    kk6 2011/06/15
    ポール・グレアム作。Lispの新方言
  • scheme(gauche)でもsleep-sort

    その他のソート vallog:sort 面白いすねー。 Sleep sortの各言語での実装まとめ – Yuyak ソース sleep.scm (use gauche.threads) (define (sleep-sort . nums) (let* ((result '()) (threads (map (^n (thread-start! (make-thread (^ _ (thread-sleep! n) (push! result n))))) nums))) (for-each (pa$ thread-join!) threads) (reverse result))) (define-macro (macro-sleep-sort . nums) `(list ,@(apply sleep-sort nums))) Gauche ユーザリファレンス: 9.26 gauche

  • Karetta|プログラミングGauche

    Copyright (c) 2006-2007 Shiro Kawai, Kahua project. http://www.oreilly.co.jp/books/9784873113487/ プログラミングGauche Kahuaプロジェクト 著 川合 史朗 監修 2008年03月14日 発売予定 524ページ 定価3,360円 ISBN978-4-87311-348-7 Mac OS X 10.5.x (Leopard)でKahuaが動かない問題 Kahua-1.0.7.2はMac OS X 10.5.x (Leopard)でテストに失敗します。 Mac OS X 10.5.xではKahua-1.0.7.3以上を使用してください。 http://www.kahua.org/show/info/Download Windows用Gaucheインストーラ http://sourcefor

  • Karetta|Gaucheプログラミング(立読み版)

    はじめに書の構成 (1)書の対象読者書の表記書の使い方執筆時点でのGaucheバージョン謝辞第1部: 思想LispとScheme (4)Gaucheの特徴 (1)すべて式であるすべてリストである (1)lambdaは空気のような存在である (2)プログラミングとは名前付け(bind)であるすべて再帰である (2) (2)Schemeのすごい点 (4)すべてオブジェクトである (もしそれがお望みなら)Gaucheの設計思想や誕生の背景Schemeの評価モデルとは? (3)「Lisp脳」の謎に迫る - Schemeプログラマの発想第2部: 実用Schemeスクリプトを書こうSchemeスクリプトを書く (1)コマンドライン引数の値を得るユニットテストを書く (1)CGIを書こうSchemeスクリプトをCGIとして実行するwww.cgiライブラリを利用する (1)手軽にHTMLを生成する

    kk6
    kk6 2011/01/23
  • Gauche on Windows

    現在のバブル気味なScheme人気はきっとSICPとGaucheが引き起こしたのでしょう。 Gaucheは大人気です。大幅な拡張が加えられていて、最早Schemeとは言えないほどに 拡張され実用向けとなっています。 プロの技術者なら当然にUnix系のOSでEmacsによりGaucheを使いこなすのでしょうけれども、 一般人には荷が重過ぎます。サクっとお手軽にWindowsでGaucheを楽しみ、勉強するというのも アリだと思うのです。そういえばオライリーから「プログラミングGauche」 というも出てましたね。 WindowsでChezEditを使ってお手軽に動かしてみましょう。ChezEditもVer1.30からは UTF-8が扱えるようになりました。Ver1.31からGaucheモード追加しました。GaucheもOKですよ。 ○まずはGauche/Winのゲットです。 htt

    kk6
    kk6 2011/01/22
  • SICP関数型言語の勉強に「計算機プログラムの構造と解釈」を読もう - ひげぽん OSとか作っちゃうかMona-

    計算機プログラムの構造と解釈posted with amazlet on 06.04.15 Gerald Jay Sussman Julie Sussman Harold Abelson 和田 英一 ピアソンエデュケーション (2000/02) 売り上げランキング: 56,404 Amazon.co.jp で詳細を見る 自分が「計算機プログラムの構造と解釈」というを勉強していった過程をまとめています。 この質は、翻訳の悪さでも難しい数学でもないです。 なんと伝えたらよいのだろうか。 全部読み終えたときにまとめたいと思います。 →読み終わったのでまとめました。「「計算機プログラムの構造と解釈(SICP)」を読み終えて」 読み終えたら次のステップとしてはOn Lispなどがおすすめです。 目次 関数型言語の勉強にSICPを読もう - (1) SICPを読み始めた理由 関数型言語の勉強に

    SICP関数型言語の勉強に「計算機プログラムの構造と解釈」を読もう - ひげぽん OSとか作っちゃうかMona-
    kk6
    kk6 2011/01/17
    sicp要約
  • Python の関数型っぽいプログラミング - tomapd == 22%

    Python はかなり関数型っぽいということがやっと分かったので、Scheme と比べつつ様子を探ってみたい。まずは Lisp ではよく高階関数の例として取り上げられるものをいくつか取り上げてみた。 関数の合成。 ;; Scheme (define (compose f g) (lambda (x) (f (g x)))) # Python def compose(f, g): def __fg(x): return f(g(x)) return __fg つづいて二つのリスト(あるいは配列)の各要素ごとの和を返す関数。 ;; Scheme (define (sum-element lst1 lst2) (map + lst1 lst2)) # Python def sum_element(lst1, lst2): return map(operator.add, lst1, lst2)実

    Python の関数型っぽいプログラミング - tomapd == 22%
    kk6
    kk6 2010/12/11
    高階関数ぽい書き方
  • Scheme:Schemeプログラマのレベル10

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

    Scheme:Schemeプログラマのレベル10
    kk6
    kk6 2010/12/04
  • Scheme プログラミング入門

    back (技術評論社 Software Design誌 2000年 7月号 に掲載された、「Scheme への招待 〜 GNU標準のスクリプト言語入門」の 記事を加筆修正したものです *1) はじめに みなさんは Lisp をご存じでしょうか。Lisp は 1950年代後半*2に John McCarthy によって 開発されたプログラミング言語で、 おもに記号処理などの分野で今も利用されています。 Scheme は Lisp から派生した言語のひとつで、 Guy Lewis Steele Jr. および Gerald Jay Sussman によって 1975年に開発されました。Scheme はよく 「Lisp の方言」などと呼ばれますが、Lisp よりも簡単な仕様 で、それでいて複雑なプログラミングが可能なように設計されています。 どのプログラミング言語にも長所と短所がありますが、S

    kk6
    kk6 2010/12/04
    scheme入門
  • ネイルで失敗しないためのネイリスト選びの極意とは?

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

    kk6
    kk6 2010/12/04
    "日本の Scheme ユーザのためのハブサイト。日々 Scheme 情報を発信しています。"
  • approx-search.el

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

    kk6
    kk6 2010/12/04
    scheme/Lispのまとめサイト
  • Schemeを作ろう 第1回

    Last update 1999/08/07 Scheme処理系の制作 第1回 (C)平山直之 無断転載は禁止、リンクはフリー 誤字脱字の指摘は歓迎 ゲームとスクリプト はい、また例によって行き当たりばったりな企画です。 といっても、相当長い間私の心の大きな部分を占めていた問題ではあります。 それは言語の処理系の必要性についての問題です。 ゲーム制作、特にRPG・アドベンチャーなどの「シナリオ」の重要性が高いものを作るのに必要不可欠なものに、「イベントスクリプトの処理系」というものがあります。ネットでもこうした「イベントスクリプトの処理系」について考える人が少なくないのも、こうした必要性の表われと言えるでしょう。 しかし、こうした処理系は、それぞれのプログラマが独自の文法でプロジェクトごとに作り直しているのが現状です。これが、コードの再利用、ひいては「気楽にゲームを作る」上での大きな障害に

    kk6
    kk6 2010/12/04
    C++でschemeを実装する
  • Scheme演習

    成績について Schemeの成績はレポートのみ(出席は取らない) レポートは完全にできていなくても提出できた分をそれなりに評価する 課題について 提出は hara2001-scheme @ ui.is.s.u-tokyo.ac.jp へメールで送ってください 送信されたE-mailに対して自動的に返信メールが送られます 添付ファイルではなくメール文に直接貼ってください (ただしどうしても文字化けしてしまう人はテキストファイルを添付してください) Subjectは "Report (課題番号) 学生証番号" で送ってください 例: Report (1) 123456 課題の文の先頭に Scheme演習 第1回レポート 理科I類2年 123456 須木 異夢 という形式で名前等を書いてください 締め切りは次のScheme演習の前日 授業で出題する前に課題を提出してもかまいません (質問も受

    kk6
    kk6 2010/12/04
    東大のscheme演習
  • Python - generatorで素数生成

    Pythonのgeneratorは無限ストリームを実現するのに便利。 たとえば、 SICP 3.5.2 節にでてくる素数の無限ストリーム Scheme: (define (integers-starting-from n) (cons-stream n (intege...

  • Introduction to Scheme Programming Language

    まえがき 世の中には様々なプログラミング言語があるが,文書では,Lispプログラミン グ言語の一つの方言であるScheme(スキーム)を紹介する.ここではSchemeを直観 的に理解することをまず目標として,形式的に完全であるかどうかにはこだわら ないことにする. ※見た目にもあまりこだわらないことにする:-) より詳しくは, 湯浅太一 「Scheme入門」 岩波書店 K.ディヴィグ著 / 村上雅章 訳 「プログラミング言語 SCHEME」 ピアソン・エデュケーション 2000 猪股俊光, 益崎真治 「Schemeによる記号処理入門」 森北出版 1994 D.P.フリードマン, M.フェライセン 著/ 元吉文男, 横山晶一 訳 「Scheme手習い」 マグロウヒル出版 1990 H. Abelson, G.J. Sussman and J. Sussman 著 "Strucuture a

    kk6
    kk6 2010/11/19
    京大のscheme演習らしい