タグ

Schemeに関するmoozのブックマーク (31)

  • 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)ベアトリーチ

    Island Life - ローカルスコープ内からグローバル定義
    mooz
    mooz 2012/12/08
    "SchemeはCommon Lispよりも少し静的寄りで、プログラムの実行開始時までにトップレベル束縛がなるべく決まっていて欲しいと思う傾向がある"
  • GitHub - AlexNisnevich/ECMAchine: Lisp-based in-browser toy operating system

    ECMAchine ECMAchine is an in-browser Scheme REPL that is also a toy operating system. It has a virtual filesystem that is accessed through Unix-like commands, as well as a rudimentary process management system. Why? I made ECMAchine for a few reasons. For one, it's an interesting experiment in what a filesystem based around S-expressions could look like. It was also a good exercise in writing an i

    GitHub - AlexNisnevich/ECMAchine: Lisp-based in-browser toy operating system
    mooz
    mooz 2012/04/09
    JavaScript による Scheme 実装 + OS 機能.
  • なぜ JavaScripter が Schemer になったか - (new Hatena).blog()

    以前は JavaScript のことばかり書いていたのが信じられないくらい、Scheme のことばかり書いていることについての説明文です。 ホップ 当ダイアリーのタイトルからもお分かりかもしれませんが、私は元々 JavaScript について書きたくなって、ブログというものを始めました (ついでに言うと、はてなのアカウントを取った時点ではそんなつもりは1ミリも有りませんでした)。 ちょうど世界的に JavaScript の真価が理解されるようになった時期でもあり、個人的には Ruby のクラス・システムを JavaScript で模倣するというテーマに興味を持って色々と実験をしたものです。 それから、LDR との出会いという大きな経験もありました。プログラムの世界に深く沈潜するようなリーディング体験をしたのは、この時が初めてだったかもしれません。それまで考えもしなかったような発想や技術に溢

    なぜ JavaScripter が Schemer になったか - (new Hatena).blog()
    mooz
    mooz 2010/12/16
  • 部分継続について本気出して考えてみた - (new Hatena).blog()

    以前何度か部分継続について書いたことがあるんですが、当時は表面的な振る舞いを観察して何となく分かった気になった程度の拙い説明しか出来ませんでした。 その上、最近のプログラミングでもほとんど活用しておらず、改めて理解し直す必要を感じてきた次第です。 そこで今回は、部分継続の概念的な理解を目指し、基礎的な事柄を中心にまとめていきたいと思います。 基的に PLT Scheme (MzScheme) の評価モデルに即して書いていくため、Scheme 一般に当てはまる話になっていない部分もあるかも知れません。その点ご了承ください。 Redex と継続 Scheme の評価モデルにおいて、 (+ 1 (+ 2 0))という式を評価するとき、まず (+ 2 0)の部分が評価され、その結果の値に対して (+ 1 [])という残りの計算が行われます。 ここで角括弧で示した部分を reducible exp

    部分継続について本気出して考えてみた - (new Hatena).blog()
    mooz
    mooz 2010/12/16
    脱出の起こる continuation, 脱出の起こらない composable continuation.
  • SRFI 26: Notation for Specializing Parameters without Currying

    by Sebastian Egner Status This SRFI is currently in final status. Here is an explanation of each status that a SRFI can hold. To provide input on this SRFI, please send email to srfi-26@nospamsrfi.schemers.org. To subscribe to the list, follow these instructions. You can access previous messages via the mailing list archive. Draft: 2002-02-06--2002-04-06 Revised: 2002-02-15 Revised: 2002-02-28 Rev

    mooz
    mooz 2010/11/07
    cut / cute
  • 便利そうなマクロを集める旅。途中経過 - podhmoの日記

    旅をしています。途中経過はgistで はじめに elispは便利な機能がデフォルトでつかえないことが多いです。cl由来の便利ライブラリが使えません。(require 'cl)をする必要があります。それ自体はeval-when-compileで囲めば良いので問題ないです。elispは名前の衝突を避ける仕組み(e.g. 名前空間)が用意されていません。そんなわけで、自前の拡張を作成するときに各自で重複するようなマクロが定義されてます。onlisp由来のマクロなどを良く見かけます(とくにaifを良く見かける)。 今回の目的は2つあります。 各自が個別に定義してきた便利マクロを集めてみるとどの程度の規模になるのか知りたい。 自分用の便利なマクロを集めたライブラリが欲しい。 とりあえず、便利だなと思うマクロを追加してみることにしました。util-macro.elというファイルがそれです。 追加したマ

    便利そうなマクロを集める旅。途中経過 - podhmoの日記
  • Route 477(2010-05-24)

    ■ [lisp][scheme] 社内勉強会でLisp概論的な話をした (以下、わりと適当な資料) Lispといえば? 最初の動的言語 最初のGC付き処理系 人工知能研究の言語として活躍 括弧 マクロ 1957年 FORTRAN 1958年 ALGOL58, LISP 1960年 COBOL 1964年 BASIC LISP戦国時代 方言の乱立 LISP二大政党時代 Common Lisp (1984-) 方言の統一 標準規格が存在 (ANSI CL) http://www.lispworks.com/documentation/HyperSpec/Front/Contents.htm SBCL, Clisp, Allegro CL(商用), ... LISP-2 tとnil マルチパラダイム、コンパイラ、リーダマクロ、パッケージ、CLOS Scheme (1975-) ミニマリズム 処理

    Route 477(2010-05-24)
    mooz
    mooz 2010/05/26
    名著にして積ん読. 名著にして鈍器. いつか S 式でコミュニケーションが取れるようになりたい.
  • Lisp/Scheme Interpreter & Compiler

    ようやくLOL(LET OVER LAMBDA Edition 1.0)を読了した今日この頃です。わからないことだらけです。7章のForthを実装するところから書いてみようと思っています。 題ただのメモです。 最近、一日のうちに何度も「PCを開くにもを開くにも中途半端な時間」が多く発生するので、携帯で2chを見てます。 【SICP】計算機プログラムの構造と解釈 Part2 99 :デフォルトの名無しさん:2008/02/18(月) 22:30:16 >>94 > Essentials of Programming Languages > 71. Continuation Passing Interpreterで。 3章がenvironment passing interpreterで、 7.3がimperative interpreger。 Reflection http://libr

    Lisp/Scheme Interpreter & Compiler
    mooz
    mooz 2010/04/28
    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
    mooz
    mooz 2010/04/27
    Common Lisp のマクロ
  • 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
    mooz
    mooz 2010/04/27
    Scheme, Common Lisp のマクロ.
  • How to implement continuations?

    I'm working on a Scheme interpreter written in C. Currently it uses the C runtime stack as its own stack, which is presenting a minor problem with implementing continuations. My current solution is manual copying of the C stack to the heap then copying it back when needed. Aside from not being standard C, this solution is hardly ideal. What is the simplest way to implement continuations for Scheme

    How to implement continuations?
    mooz
    mooz 2010/04/26
    継続の実装
  • Karetta|継続渡しスタイル

    mooz
    mooz 2010/04/21
    継続 call/cc を実際に使ってみる
  • azito.com

    This domain may be for sale!

    mooz
    mooz 2010/04/21
    パターンマッチについて.
  • Lisp: Common Lisp, Racket, Clojure, Emacs Lisp - Hyperpolyglot

    ca side-by-side reference sheet grammar and execution | variables and expressions | arithmetic and logic | strings | regular expressions | dates and time | lists | fixed-length arrays | dictionaries | user-defined types | functions | execution control | exceptions | streams | emacs buffers | files | directories | processes and environment | libraries and namespaces | objects | lisp macros | reflec

    mooz
    mooz 2010/04/19
    Common Lisp, Scheme, Clojure, Elisp の関数対応表. 最高.
  • Greenbear Diary - call/ccの7つの典型的な使い方

    ■ [scheme][ruby] call/ccの7つの典型的な使い方 わだばさん(でいいのかな?)のところで紹介されていたCall with Current Continuation Patternsをちょっと見てみた。 7/26 第9回 慢性的CL勉強会@Lingr 8時だョ!全員集合まとめ - わだばLisperになる - cadrグループ それによると、callccの典型的な使い方には以下のようなものがあるらしい。 (無限)ループからの脱出 再帰からの脱出 Cでいうcontinue 脱出+再入 コルーチン non-blindな(??)バックトラッキング マルチタスク で、だ。 1, 2, 3は、breakとかcontinueがある言語なら普通にできる。 5や4の一部は、PythonのジェネレータとかRuby1.9のFiberでできる。 7はコルーチンやスレッドを使えばできる。 とな

    Greenbear Diary - call/ccの7つの典型的な使い方
    mooz
    mooz 2010/04/11
    call/cc の使用例. Fiber, Generator.
  • Scheme:コーディングスタイル

    koguroさんのとこで出た話題 コーディングスタイルifのbegin括弧の位置let式if式関数定義関数のサイズ編集環境括弧を書くタイミングemacsのキーバインディング括弧挿入のキーバインド全体的なコメントはこちら コーディングスタイル みなさんどんな風に Scheme のソースを書かれているのでしょうか。 他の人のソースを参考にしているのですが、どこかに明文化されたものがあるとうれしいです。(C みたいに K&R とか whitesmith とかいろいろ流派があるのでしょうか) とりあえず、バリエーションが出る要素を上げていってみましょ。Shiro 関連:Lisp:コメント ifのbegin もしC言語でif (...) { を if (...) (begin と書けといわれたらうんざりするでしょう。 C言語のswitch文にbreak;を書いているような気分になります。(gemma

    Scheme:コーディングスタイル
    mooz
    mooz 2010/03/21
    scheme, lisp 系のコーディングスタイル. 閉じ括弧はまとめれば良いというものでもない.
  • 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)ベアトリーチ

    Island Life - 言語の強み
  • call/cc 入門 (Coroutine with call/cc) - MAYAH

    call/cc を使って簡単な Coroutine を作ります。call/cc 入門だと思ってもらえれば幸いです。 coroutine とは ここでは coroutine を「実行の途中でリターンでき、さらにそこ(実行の途中)から再開することが出来る何か」の意味で使用します。適当な疑似言語で書くと次の通り。関数の途中でのリターンを suspend(), 途中からの再開を resume() で表すことにします。 ここでは、これを scheme の call/cc を用いて表すことを目指します。 call/cc とは call/cc とは、call-with-current-continuation という scheme の関数で、「現在の継続(current continuation)を生成し、それを関数に渡してその関数を実行する」ものです。読者の殆どは「継続」についてよく知っているかもしれ

    mooz
    mooz 2010/03/08
    call-with-current-continuation : call/cc
  • jsscheme test

    Tiny Scheme implementation with javascript description 言語開発合宿で作成した、Scheme(的なもの)のjavascript実装です。 継続と末尾再帰最適化まで実装しました。継続のほうは当に仕様を満足しているかどうか不安ですが。 マクロは、ありません 詳しい説明はblogのほうに。 features parse SExpr variable reference create/call closure tail-call optimization continuation quote ('expr) , dotted pair( (x . y) ) , comment( ;; ) etc is not supported. console hold log Examples basic operations 1 (define x 1

    mooz
    mooz 2010/03/02
    scheme 処理系. Gin を使用.
  • Y Combinator - LoveRubyNet

    $Id: ycombinator.html,v 1.6 2002/06/27 23:37:39 aamine Exp $ [ruby-list:35058] に刺激を受けて Y combinator を解読してみた。 こんなもん読むくらいなら以下の参考ページを読んだほうがいい。 参考にした (というかほとんどそのままな) ページ (英語) http://www.ececs.uc.edu/~franco/C511/html/Scheme/ycomb.html 動機 再帰関数は再帰するときに自分自身を名前で呼ぶのが普通である。 これをなんとかして名前を使わず、関数そのものを呼ぶように させたい。 求めかた まず単純な fact (階乗) を以下に示す。言語は Scheme である。 (define fact (lambda (n) (if (zero? n) 1 (* n (fact (- n