タグ

Programmingとschemeに関するjjzakのブックマーク (163)

  • なんでも継続、Perl で。 : torus solutions!

    最近よくコンティニュエーション・パッシングだとか、 継続ベースの○○とか、 そういう話題を耳にします。 でも継続っていうのが何なのか良く分からなかったので、 お正月休みに Shiro Kawaiさんの なんでも継続 を読んでみました。 今までずっと難しいだろうと思って読んでなかったんだけど、 これがまたとても分かりやすくて面白かったので、 途中にあげられていたサンプルコードを Perl でも書いてみました。 普通の再帰形式 Scheme では (define (leaf-count tree) (if (pair? tree) (+ (leaf-count (car tree)) (leaf-count (cdr tree))) 1)) Perl では Perl にはペアがないので、 2 要素の配列でエミュレートすることにします。 それ以外はそのまんまです。 sub leaf_count

  • 反復的プロセス、末尾再帰、継続渡しスタイル : torus solutions!

    はてなリングの SICPで学びましょう というのに参加したので、 SICP に関係しそうなことを書いてみます。 SICP の第 1 章で、 再帰的プロセスの手続きを反復的プロセスに書き換えるという問題が出て来ますが、 これは慣れると自然に出来るようになります。 そこで出てくるのが末尾再帰というテクニックです。 しかし、 場合によっては末尾再帰にするのがちょっと難しい場合があります。 こういう時のとっておきの方法として、 継続渡しスタイルというのを紹介します。 簡単な書き換え 数値からなるリストを受け取って、 その要素の和を返す sum という関数を考えます。 まず、 普通に再帰を使って書くとこんな風になると思います。 (define (sum l) (if (null? l) 0 (+ (car l) (sum (cdr l))))) これを反復的プロセスの関数 sum-iter に書き換

  • Re: CPS を知るのによい参考文献 (Gauche-devel-jp) - Gauche - OSDN

    IRIYA, Kazunori iriya****@mcn***** 2004年 5月 7日 (金) 02:00:50 JST 前の記事 [Gauche-devel-jp] Re: 最後にメッセージを受け取るアクターと手続きの終りの意味 次の記事 [Gauche-devel-jp] Re: [kahua-dev:00648] Re: gauche package repository 計画 記事の並び順: [ 日付 ] [ スレッド ] [ 件名 ] [ 著者 ] みなさん、 さっそくいろいろとポインタ情報をありがとうございました!! WiLiKi に載せる場所がちょっとわからなかったので、とりあえず WiLiKi の書 式で教えていただいた URL をまとめました。そのままコピー&ペーストできま す。 - リファレンス -- [[WiLiKi:Scheme:CPS]] -- [http:

    Re: CPS を知るのによい参考文献 (Gauche-devel-jp) - Gauche - OSDN
  • Scheme:マクロの効用

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

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

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

    はてなブログ
  • ちょっと息抜き GaucheでXMLから内容を抽出する - ねこじたclockwork

    XPathが使えますよ(SXPath)。 (use rfc.http) (use sxml.ssax) (use sxml.sxpath) (let-values (((status head body) (http-get "zip.ricollab.jp" "/5340026"))) (let ((xml (call-with-input-string body (cut ssax:xml->sxml <> '((xhtml . "http://www.w3.org/1999/xhtml")))))) ; //xhtml:dd[@class = 'address'] ((sxpath '(// (xhtml:dd (@ (equal? (class "address")))))) xml)))gosh> ((xhtml:dd (|@| (class "address")) (xhtml

    ちょっと息抜き GaucheでXMLから内容を抽出する - ねこじたclockwork
  • CyDN - オープンソースことはじめ ―Scheme インタプリタ Mosh をいじってみよう―

    サイボウズはクラウドベースのグループウェアや業務改善サービスを軸に、社会のチームワーク向上を支援しています。

    CyDN - オープンソースことはじめ ―Scheme インタプリタ Mosh をいじってみよう―
  • fixedpoint.jp - ypsilon 0.9.5 (2008-06-21)

  • 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 が、いきなり言語仕様を変更したとしても、しっかり初心者層にリーチし、

  • snow-bellの日記

    新型インフルエンザにかかってしまったようなので 診断された経緯などを書きます 日曜日正午くらい     なんか喉だけが痛い状態 月曜日午前0時くらい    足が筋肉痛みたいに痛くなる 月曜日午前4時30分くらい  目眩がするので熱を測ったら38度だった 月曜日午前5時くらい    専用受付に連絡 今緊急で病院に行って検査しても インフルエンザかどうか分からない 仮に陽性だったとしても薬が1日分 しか出ないと言われる →体力温存して朝病院に行くようにする 月曜日9時         病院に行かなければならないが どうしても体調が悪いため 病院に行く時間を延ばす 月曜日11時        病院へ行く 病院に行ってすぐ先生から「インフルエンザだと思うよ」といわれました 咳の感じとか熱の出方鼻水などがもうそのまんまインフルエンザの 症状そのものらしいです 検査をしても発熱してからギリギリ8時間の

    snow-bellの日記
  • Gaucheをはじめてみませんか?

    Gaucheとは 連載では、今注目のプログラミング言語「Gauche」について解説しながら、簡単なWebアプリを作っていきます。Gaucheとは、ハワイ在住の日ハッカー「川合 史朗」さんが作ったLispの一種である、Schemeの処理系です。オープンソースで開発されています。 Gaucheの特徴は、Perlのように気軽に使える軽い処理系でありながら、正規表現、CommonLisp風オブジェクトシステムなど、Scheme標準にはない拡張機能や豊富なライブラリを持ち、実用的なプログラミングが行える点です。 最近「Gauche」に関するも出版され、「第4回:都内大手3書店の3月ベスト3発表!(http://www.thinkit.co.jp/article/49/4/2.html)」でも紹介されているように売れ行きも好評です。それは、なぜでしょうか? 筆者はLisp、特にSchemeの持

  • MapReduceの本質 - 中しまのメモ

    また一つ、『計算機プログラムの構造と解釈』から面白いネタが飛び出してきた。 計算機プログラムの構造と解釈 一見なんでもないようなschemeの例題から、GoogleのIndex生成アルゴリズムとして名高いMapReduceの概要を理解するための機会を得た。 あの例題の質は何だったのか? きっかけは、先日の「プロセスの抽象化(シーケンスへの作用)」というエントリーに関して、会社の先輩から興味深い指摘をいただいたことだった。エントリーの内容は、抽象化によって「木構造の要素に対して作用する手続き」を改善するという話だが、その改善前後の手続きをもう一度掲載する。 【A】改善前の実装 (define (sum-odd-squares tree) (cond ((null? tree) 0) ((not (pair? tree)) (if (odd? tree) (square tree) 0))

    MapReduceの本質 - 中しまのメモ
  • Three Dogmas of Scheme

    Three Dogmas of Scheme (Recursion, Single name space and Continuation) R6RS にざっと目を通して一番驚いたのはそれまでの表示意味論が捨てられてしまっていることでした。 しかし 表示意味論 を捨てるなら以下に並べる Scheme 三つのドグマも捨てられなきゃ嘘だろう、ということでコメントしてみます。 Recursion (再帰) Scheme は何でも再帰です。 後で示すように、一見 iteration のような格好をしている構文ですら、 一旦末尾再帰に置き換えられてから実行されます。 つまり Scheme はその仕様に iteration を持ちません。 これが関数型プログラミングと関係の深い表示意味論からの要請であったことは容易に想像がつきます。 しかし、表示意味論が捨てられた今、反復制御構造に recursion

  • SchemeでYahoo!検索Webサービス - maoeのブログ

  • Arc: Table of Contents

    Table of Contents Basics The foundation: a guide to the core axioms of the language. Assignment and places: how places (generalized variables) are used in Arc. Boolean operations Iteration: Looping and iteration Conditionals Evaluation List operations Macros Math Predicates String operations Table operations Type operations Variable operations OS functions Networking Atomic operations: performing

  • FrontPage - アルゴリズムとデータ構造入門 - Kyoto Univ.

    アルゴリズムとデータ構造入門 TAのページ 京都大学 工学部 情報学科 1回生配当の授業 アルゴリズムとデータ構造入門(奥乃先生担当)のTAが管理するページです。 連絡 (2007/10/01) 2007年度用に更新。 (2006/10/31) Meadowの使い方を公開しました。 (2006/11/14) 改行コードで困っていた方が多かったので改行コードに関する設定についてまとめました。 (2006/10/27) 質問掲示板を移行 使い勝手が悪く、あまり評判もよくないので質問掲示板を移行しました。これからは新しい方に質問を書いてください。 (2006/10/13) cygwinとTUTSchemeのインストールの説明に間違いがあったので追加・修正しました。 このページの通りにインストールを行って、Can't find a usable init.tcl in the following

  • neilvandyke.org - HtmlPrag

    HtmlPrag provides permissive HTML parsing and emitting capability to Scheme programs. The parser is useful for software agent extraction of information from Web pages, for programmatically transforming HTML files, and for implementing interactive Web browsers. HtmlPrag emits "SHTML," which is an encoding of HTML in SXML, so that conventional HTML may be processed with XML tools such as SXPath. Lik

    jjzak
    jjzak 2008/03/21
    schemeのhtmlパーサ