タグ

!tumblr-techとschemeに関するtyruのブックマーク (19)

  • JEmacs

    Abstract JEmacs is a re-implementation of the Emacs programmable text editor. It is written in Java, and currently uses the Swing GUI toolkit. Emacs is based on the extension language Emacs Lisp (Elisp), which is a dynamically-scoped member of the Lisp family. JEmacs supports Elisp, as well as the use of Scheme, a more modern statically-scoped Lisp dialect. Both languages get compiled to Java byte

  • 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と副作用
  • The Little JavaScripter

    https://www.crockford.com/little.html

  • Gauche:イディオム

    「Schemerの常識は他のプログラマの非常識」という理念に基づき、 実際のプログラムによく出てくる定型を列挙するコーナー。 といいつつ実際なんの役に立つのかわからないけどとりあえずおもしろいから いいやとか、単に笑えるだけの技なんかも集まるといいなあ。 大きいものは別に項目を立てるとして、こっちは10行くらいをメドに。 モデルにしたのはこのへん。 http://www.asahi-net.or.jp/~dp8t-asm/java/idiom/index.html 当面整理しないでただ並べておく。 関連 Lisp:コメント Scheme:コーディングスタイル Scheme:!と?(変数名の慣習) Scheme:多値 Scheme:named letの書き方 Scheme:マクロ:anaphoric ifの代替 Scheme:リスト処理 Scheme:テキスト処理 Gauche:入出力ポート

    Gauche:イディオム
  • SRFI 49: Indentation-sensitive syntax

    著者 Egil Mler http://redhog.org/ / redhog@redhog.org 著者 この SRFI は現在「確定」の状態である。 SRFI の各状態の説明については ここ を参照せよ。 この SRFI に対するコメントは、 srfi minus 49 at srfi dot schemers dot org 宛てにメールで送信してください。 このメーリングリストに参加する方法については、 ここの説明 を参照してください。 この SRFI に関する議論については メーリングリストのアーカイブ を参照せよ。 この SRFI に関する確定後の議論については メーリングリストのアーカイブ を参照せよ。 受理: 2003/11/23 草案: 2003/11/30-2004/01/28 改訂: 2005/05/29 概要 この SRFI では、S-式と同等の記述力を持つ、

  • Gauche スクリプトに S 式を渡したい時って

    例えばこういうことをしたい時って、 >gosh script.scm -sexp "identity" Hello, world >gosh script.scm -s "(^x (print x)(print x))" Hello, world Hello, world #<undef> >gosh script.scm -s "(lambda _ (use srfi-19 :only (current-date date->string))(current-date))" #<date (32400)="" 12="" 14="" 2010="" 23:18:00.218750000=""> こんなんで良いのかな。 (use gauche.parseopt) (define (main args) (let-args (cdr args) ((func "s|sexp=e" ident

    Gauche スクリプトに S 式を渡したい時って
    tyru
    tyru 2010/12/15
    ^xなんてあるんだ cutじゃダメだけどlambdaはめんどい時に使うのかな / おお検索したら /usr/share/gauche/0.9/lib/gauche/experimental/lamb.scm にあった
  • Scheme 入門 A-3. 継続についてもう少し

    Appendix 3. 継続についてもう少し 以下の文章は、以前継続について書いたものです。 皆様の継続の理解に役立てば幸いです。 1. はじめに Scheme の継続は大変強力だそうです。ただ、理解するのは大変難しく、実は紫藤もよくは理解していません。 ここでは備忘録を兼ねて継続について詳しく説明しようと思います。 Scheme は言語体系は小さいのですが、それによってほとんどのプログラミング技法が表現できるように 設計されています。他の言語に見られるような便利な機能は無いのですが、その分アルゴリズムを直接 記述できるので主に教育用言語として使われています。有名な 計算機プログラムの構造と解釈に記載されている プログラムは Scheme を用いて書かれています。なお、 実用的には全く用いられないということは無く、 Practical Scheme に事例があります。 継続を除いて、Sch

    tyru
    tyru 2010/12/13
    なるほど...継続ってどう実装するか想像できなかったけどこれでわかった。(気がする
  • 継続渡し形式(CPS)Javascriptプログラミング

    継続とはコンピュータがプログラムを実行しているときの次に何をするのかを表す概念です。詳しくは何でも継続のページを参照し欲しいのですが、継続はプログラムを実行する上で欠かせない存在となっています。ソースコードのある行を実行したら次の行を実行します。関数(サブルーチン)を終了したら、呼び出し元に戻ります。これらは全て継続です。あたりまえと言えばあたりまえのことです。しかし、このあたり前のことを明確に意識しようとすると途端に目の前に霞がかかったようになります。 プログラミングの世界の概念には、禅の公案のようなものがある。それを説明する文章はほんの一文なのに、最初に目にする時、その文は全く意味をなさない、暗号のように感じられる。だがひとたびその概念を理解すると、その概念の説明は確かにその一文で説明されているのがわかるのだ。 そんな、「分かれば分かる」という禅問答の中でも「継続」は最も謎めいたもの

  • not found

    tyru
    tyru 2010/08/26
    「カッとなったので、実際に数えてみることにしました」
  • 404 Blog Not Found:TuringとChurchの狭間で

    2006年04月16日13:53 カテゴリMath書評/画評/品評 TuringとChurchの狭間で The Emperor's New Mind Roger Penrose [邦訳:皇帝の新しい心] なんでひげぽんが反復がすぐにわからなかったかを憶測すると、「変数とは代入すべきもの」、という手続き型言語の呪縛が思い立つ。ひげぽんは別にがっかりする必要はない。hyukiさんさえそれに引っかかっていたんだから。 その証拠を、以下にお見せする。 [結]2005年8月 - www.textfile.org sub fix { my $G = shift; return $G->( sub { my $x = shift; return fix($G)->($x); } ); } これはPerlで実装した不動点関数で、全く問題なく動く。しかし、hyukiさんも知らぬ間に一つ「反則」を犯しているこ

    404 Blog Not Found:TuringとChurchの狭間で
  • (begin a b ...)と(let () a b ...)は同じじゃない

    2022 (2) ► 10月 (1) ► 2月 (1) ► 2021 (51) ► 11月 (2) ► 10月 (2) ► 9月 (4) ► 8月 (4) ► 7月 (4) ► 6月 (4) ► 5月 (3) ► 4月 (10) ► 3月 (7) ► 2月 (4) ► 1月 (7) ► 2020 (155) ► 12月 (7) ► 11月 (10) ► 10月 (8) ► 9月 (8) ► 8月 (11) ► 7月 (21) ► 6月 (19) ► 5月 (14) ► 4月 (20) ► 3月 (13) ► 2月 (10) ► 1月 (14) ► 2019 (293) ► 12月 (11) ► 11月 (12) ► 10月 (24) ► 9月 (29) ► 8月 (27) ► 7月 (36) ► 6月 (40) ► 5月 (24) ► 4月 (35) ► 3月 (42) ► 2月 (6

    tyru
    tyru 2010/04/16
    構文的にPerlのsub { ... }->()とdo { ... }に似てると一瞬思った。スコープはどっちも作るけど、doの中ではループ中ではループ制御コマンドが使える。
  • Emacs S式操作

    2022 (2) ► 10月 (1) ► 2月 (1) ► 2021 (51) ► 11月 (2) ► 10月 (2) ► 9月 (4) ► 8月 (4) ► 7月 (4) ► 6月 (4) ► 5月 (3) ► 4月 (10) ► 3月 (7) ► 2月 (4) ► 1月 (7) ► 2020 (155) ► 12月 (7) ► 11月 (10) ► 10月 (8) ► 9月 (8) ► 8月 (11) ► 7月 (21) ► 6月 (19) ► 5月 (14) ► 4月 (20) ► 3月 (13) ► 2月 (10) ► 1月 (14) ► 2019 (293) ► 12月 (11) ► 11月 (12) ► 10月 (24) ► 9月 (29) ► 8月 (27) ► 7月 (36) ► 6月 (40) ► 5月 (24) ► 4月 (35) ► 3月 (42) ► 2月 (6

    Emacs S式操作
  • Nonexistent page: Scheme:!?

    tyru
    tyru 2010/04/06
    名前づけの慣習
  • call/ccの冒険~その2

    call/ccの意味の分からないトコは、「無くてもいいじゃん?」って思えるケースがしばしば見受けられるトコです。 この原因の主たるところは、Schemeは明示的にreturnを使うようにはなっていない為じゃないのか、とかちょっと思うんです。 割に、C言語や、その派生モデルの言語の方がcall/ccの意図がつかみ易いのでは、と時々思います。 いずれにせよ、R5RSに以下のように記述されている通り、 call-with-current-continuation の平凡な用途は,ループまたは手続き体からの構造化された非局所的脱出である。 call/ccの取りあえずの目的は脱出なんです。いわゆるcall/ccの「すげえ機能」と言う一種の誤解は、この「脱出をどう実現してるのか」から出てきた言わば副産物なんですよね。 従って、call/ccで脱出にこだわるのは、call/ccの機能を知る為の第一歩な

    tyru
    tyru 2010/03/26
    「このように、結構高階手続きとcall/ccは相性が良いです。高階手続きを設計する際は『call/ccを使う余地が無いか?』考えてみるのが一興でしょう」
  • Re: CommonLisp の defmacro の &amp;body 相当について (Gauche-devel-jp) - Gauche - OSDN

    Shiro Kawai shiro****@lava***** 2005年 4月 22日 (金) 11:54:55 JST 前の記事 [Gauche-devel-jp] Re: CommonLisp の defmacro の &body 相当について 次の記事 [Gauche-devel-jp] Re: CommonLisp の defmacro の &body 相当について 記事の並び順: [ 日付 ] [ スレッド ] [ 件名 ] [ 著者 ] From: Makoto Satoh <makot****@yahoo*****> Subject: [Gauche-devel-jp] CommonLisp の defmacro の &body 相当について Date: Fri, 22 Apr 2005 11:26:21 +0900 (JST) > (defmacro with-image

    Re: CommonLisp の defmacro の &amp;body 相当について (Gauche-devel-jp) - Gauche - OSDN
  • srfi さーふぃ

    Scheme Requests for Implementation SRFI 日語訳 srfiは「さーふぃ」(とか「するふぃー」)と読むらしいですね。つい先日まで「えすあーるえふあい」と読んでましたよ。わりと長くそう読んでいたので、第一声で「さーふぃ」と私の口から出ることはまずありません。 SRFIとは - はてなキーワード はてな住人がかかわったものに、id:higepon 氏が、CGIライブラリさえポータブルに書けないという事実に奮起して作られた、SRFI 98: An interface to access environment variables があるところでこれって、何で書かれているのでしょうか。Schemeで書かれているのでしょうか。Schemeで書かれていないのでしょうか。どこかにソースが落ちていたりするのでしょうか。 念のため確認。SLIBは「えすりぶ」で良いですよ

    srfi さーふぃ
  • call/ccの冒険~その1

    プログラミング言語に於ける抽象化、と言うのはどう言う意味でしょうか。 抽象……。まあ、一般用語で言うと「ボンヤリとして良く分からない曖昧模糊」と言う印象があるのでは。 例えば、キャバ嬢が言う 「あのお客さんの話って抽象的で良く分かんないのよね~~。」 みたいな感じが用法でしょうか。まあ、確かにキャバ嬢相手に抽象論をするお客さんはサイテーだと思います(笑)。気をつけましょう(笑)。分かりやすい話をせんと。 とまあ、実際問題、一般生活の感覚で言うと、「抽象性=難解」と言うニュアンスが含まれますね。「抽象的な話はどーでもいいんだ!具体的な話をしろ!」みたいに怒られる事もしばしばです。 それはさておき。 僕はフォーマルでは全くCS(Computer Science)を学んだ事が無いわけなんですけれども。 一応、僕の感覚から言うと「プログラミング言語の抽象化」と言うのは「プログラミング言語を分かりや

  • 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
  • Webで読めるLisp関連書籍

    2022 (2) ► 10月 (1) ► 2月 (1) ► 2021 (51) ► 11月 (2) ► 10月 (2) ► 9月 (4) ► 8月 (4) ► 7月 (4) ► 6月 (4) ► 5月 (3) ► 4月 (10) ► 3月 (7) ► 2月 (4) ► 1月 (7) ► 2020 (155) ► 12月 (7) ► 11月 (10) ► 10月 (8) ► 9月 (8) ► 8月 (11) ► 7月 (21) ► 6月 (19) ► 5月 (14) ► 4月 (20) ► 3月 (13) ► 2月 (10) ► 1月 (14) ► 2019 (293) ► 12月 (11) ► 11月 (12) ► 10月 (24) ► 9月 (29) ► 8月 (27) ► 7月 (36) ► 6月 (40) ► 5月 (24) ► 4月 (35) ► 3月 (42) ► 2月 (6

    Webで読めるLisp関連書籍
  • 1