タグ

schemeに関するtekehikoのブックマーク (15)

  • GREE Engineer's Blog coming soon...

    コンテンツへスキップ ナビゲーションに移動 Engineers' Blog Awards 2024 を実施しました!2024/06/26yutaka.sashimaこんにちは、開発企画部の佐島です。 Engineers' Blog Awards 2024 という技術ブログ執筆者を称える社内イベントを開催しましたので紹介したいと思います。 開催背景 きっかけは昨年の新卒エンジニア研修 […] InfoGREE Engineers’ Bash 2024 を6月19日(水)に開催しました!2024/06/26yutaka.sashima 勉強会 こんにちは、開発企画部の佐島です。 GREE Engineers’ Bash 2024 という社内限定イベントが昨年に引き続き開催されましたので紹介させて頂きます。 (GREE Engineers’ Bash については […] InfoSlackオート

    GREE Engineer's Blog coming soon...
    tekehiko
    tekehiko 2008/04/24
    いままで見た中で最も美しいFizzBuzzだった。
  • Scheme:メタオブジェクトプロトコル

    メタオブジェクトプロトコル(MOP)はCommon Lispのオブジェクトシステムに 採り入れられた概念。Kiczales他の The Art of the Metaobject Protocol が元祖。 Schemeには標準ではついていないが、MOPを使えるように したオブジェクトシステムの実装はいくつかある。 Tiny CLOS Kiczales自身による、CLOSのMOPの簡易版のSchemeによる実装。非常にシンプルで、 MOPそのものの原理を知るにも良い。また非常にポータブルなため、 さまざまなScheme処理系で走らせることができる。 STklos Tiny CLOSを拡張し、またクリティカルな部分を処理系内部で実装することにより 効率を上げている。MOPを使って、GUIツールキット (現在の実装はGtk、 以前のバージョンはTk) を綺麗にSchemeのオブジェクトシステム

  • Scheme on JavaScript 作りました - yukobaのブログ

    昨日は、1000speakers の第1回のイベントがありました。1次会は Ustream にて参加し、2次会から現地で参加しました。 2次会でSICP読書会の話で盛り上がり、水曜日の読書会に参加しようと言うことになり、amachang など数名の方々に色々と Scheme の書き方を教えてもらいました。 3次会が楽しかったです!23:30頃からサイボウズラボにて3次会が始まったんですが、僕が、せっかく教えて頂いたので、Scheme の実装を JavaScript で始めたら、西尾くん(id:nishiohirokazu)と id:amachang が参加し始め、実装大会となりました。 その5時間の成果が、http://goldenscheme.accelart.jp/ です。 全員、基文法は実装できました!! 処理系を実装するに当たり、言語を問わず、一般論として、難しいのは2カ所です。

    Scheme on JavaScript 作りました - yukobaのブログ
  • 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-
  • Practical Scheme

    Shiro Kawai 7/3/2000初出、3/29/2002更新 まあとりあえずカッコは我慢しよう。ラムダとやらも、関数ポインタ+環境データ ということで納得しよう。しかし、Schemeのループ構文(do)は許せないなあ。 ごちゃごちゃしてるし、途中で脱出できないし。 CやPerlのforやwhileの方がずっと使いやすいね。 え? doなんて使わない? じゃあどうやってループを書くんだ? 消えるループ 簡単だけど、よくありそうな例として、こんなのを考えてみよう。 入力テキストの行数を数える関数count_linesを書きたい。 Cで書くとすれば、こんな感じだ。 /* 例1 */ int count_lines(void) { int count = 0, c; for (c=getchar(); c!=EOF; c=getchar()) { if (c == '\n') count+

    Practical Scheme
    tekehiko
    tekehiko 2008/03/17
    再帰についてのかなり詳細な解説
  • Practical Scheme

    このページでは、プログラミング言語Schemeの紹介、および 自作のSchemeのライブラリやアプリケーションの紹介をしてゆきます。 特に、ファイルをパーズしてテキストファイルを生成したりとか、 プロセスを監視したりとか、ちょっとしたGUIをでっちあげる と言った、職業プログラマとしてやってく上で避けて通れない雑用に便利な ライブラリが中心になる予定です。 SchemeはLisp系の言語で、見かけはLispに良く似ています。 Lispと聞いたら人工知能用言語だとか、もう古くさい言語だとか思われることも 多いんですが、CommonLispで書かれた実用的なアプリケーションはいろいろ ありますし、Schemeも拡張言語としてそれなりに使われています。 ただ、いかんせんマイナーな言語であることは間違いなく、メンテできる人が居ない とか他に分かる人が居ないという理由で採用が見送られることがあるのは

    Practical Scheme
  • Amazon.co.jp: プログラミングGauche: Kahuaプロジェクト (著), 川合史朗 (監修), 川合史朗 (読み手): 本

    Amazon.co.jp: プログラミングGauche: Kahuaプロジェクト (著), 川合史朗 (監修), 川合史朗 (読み手): 本
  • SchemeWay - Scheme Plugins for Eclipse

    A set of Eclipse plugins for the Scheme programming language. Features a powerful, fully extensible S-expression-based editor. Integrates seamlessly with any Scheme interpreter.

  • Top (Gauche Users’ Reference)

    Top This is a reference manual of Gauche, an R7RS Scheme implementation.

  • (use gauche); 書評 - プログラミングGauche : 404 Blog Not Found

    2008年03月14日00:00 カテゴリ書評/画評/品評Lightweight Languages (use gauche); 書評 - プログラミングGauche ピンポーン。ベッドから飛び出してインターフォンへ「はい?」 プログラミングGauche Kahuaプロジェクト / 川合史朗監 初出2008.03.13; 販売開始まで更新予定 「SWQ便です」「むぁ、ふぁーい」 ピンポンピンポーン。およ、もう玄関だ。「今行きまーす」 「お荷物こちらになりまーす」ん、また献か、え、オライリー?オライリー!もしや! ベリベリ「あ、やっぱり!!」「すみません、先にサインを」 失礼しました。というわけでオライリー矢野様より献御礼。 書「プログラミングGauche」は、文字通りGaucheプログラミングの、でGaucheとは何かというと、Practical、つまり実践的なschemeの実装。

    (use gauche); 書評 - プログラミングGauche : 404 Blog Not Found
  • Gauche - A Scheme Implementation

    Gauche(ゴーシュ)は、スクリプトインタプリタとしての使い易さに重点を置いて 開発を行っているR7RS準拠のScheme処理系です。日常業務の中でのちょっとした処理を行う スクリプトを気軽にSchemeで書きたいなあ、という願望のもとに、 起動が速いこと、システムへのアクセスが組み込まれていること、 最初から多国語対応を考慮していること、 リスト処理ライブラリとして他のC/C++プログラムから簡単にリンク可能であること、 などを目標としています。 Gaucheは多くのUnix系プラットフォーム およびWindows上で動作します。 実装されている機能の概要については、 機能のページをご覧ください。 News 詳しい変更はChangeLogをどうぞ。 また、最新の開発状況はGitリポジトリで知ることができます。 2024/4/23 Gauche 0.9.15 リリースノートを参照してくだ

  • Scheme Topics

    Lisp系のプログラミング言語の一種。 Gerald Jay SussmanとGuy Lewis Steele Jr.により1975年に創られました。 このWikiシステムもSchemeで書かれています。 Scheme処理系 Gauche Shiroが作っている処理系。多バイト文字をネイティブにサポートする。 MzScheme PLT Schemeプロジェクトの処理系のひとつ。 広く使われており、ライブラリやアプリケーションも充実している。 SigScheme 開発中の小規模な処理系。今後に期待。 処理系間の差異に関しては SchemeCrossReference も参照。 Scheme Topics 下のリストはマクロにより自動生成されています。Scheme:なんとか というページを作れば、自動的にリストに追加されます。 Scheme:!と?Scheme:BookScheme:Brain

    Scheme Topics
    tekehiko
    tekehiko 2008/03/04
    チュートリアル
  • 不動点演算子ふたたび - sumiiの日記

    (追記:Yコンビネータって何に使うの?) Yコンビネータ(Curryの不動点演算子)を説明するのがプチブーム(死語)らしいので、ふたたび挑戦。 まず、ふつーに再帰関数factをSchemeで定義してみる。 (define fact (lambda (n) (if (= n 0) 1 (* n (fact (- n 1))))))この定義は、右辺にfact自身が出現するので、再帰的定義なのであった。ここから右辺にfactが出現しないようにするのが目標。とりあえず、factを関数の引数として外から受け取るようにしてみる。 (define make-fact (lambda (my-fact) (lambda (n) (if (= n 0) 1 (* n (my-fact (- n 1)))))))これは( (make-fact fact) 10)みたく使えるが、make-factを呼び出す際に

    不動点演算子ふたたび - sumiiの日記
  • 不動点オペレータについて

    不動点オペレータY 階乗関数は、 (define fact (lambda (n) (if (= n 0) 1 (* n (fact (- n 1)))))) のように、再帰的に定義できる。 再帰的定義を行なう場合はdefineやletrecを使うけど、 代わりにletを使うと再帰的定義はできない。 defineやletrecをどうしても使いたくないなら、多少工夫がいる。 例えば、factの引数を増やすという方法がある。 (let ((fact (lambda (self n) (if (= n 0) 1 (* n (self self (- n 1))))))) (fact fact 10)) ⇒ 3628800 (中略) 不動点オペレータYを使うと次のように書ける。 (let* ((Y (lambda (g) ((lambda (s) (g (lambda (x) ((s s) x))

  • 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の狭間で
    tekehiko
    tekehiko 2008/02/08
    感動的に良くまとまっている。
  • 1