Top This is a reference manual of Gauche, an R7RS Scheme implementation.
最初の文章のまま載せていますので、コメント欄のshiroさんの添削と合わせてどうぞ: 一概には言えないが、2点だけ。 僕は、SICPはプログラミング言語の本じゃなくて、あれはプログラミングの本なんだと思ってる。本の中でSchemeを使っているのは、アトミックなプログラミング言語だからなんだ。ラムダ計算、末尾再帰、継続を使った抽象制御、抽象構文(マクロ)、可変状態など。軽量で、かつ十分だ。 SICPでは、プログラミングをする上での課題を扱っている。モジュラリティ、抽象、状態、データ構造、並列処理など。generic dispatchやオブジェクト、並列処理、遅延リスト、(可変な)データ構造、「タギング」なんかの、明確な課題設定に対する実装例と解説が書いてある。 Clojureはアトミックなプログラミング言語じゃない。僕はもう、アトミックにプログラミングするのは古くて遅くて飽きた。Clojur
kyotolisp#1 (kyotolisp.github.com) で発表した内容です。スライドは(2)に続きます。Read less
This page is a collection of libraries and extensions to use Scheme as a production tool. By "production tools" I mean the tools to process daily chores for systems engineers and programmers---parsing files, generate reports, watching processes, providing small GUI wrappers, and all sorts of those things. Currently I'm using Perl for those purpose, but I'm always longing to use Scheme for them. So
1801 – ジョセフ・マリー・ジャカールがパンチカードを使った織機によってタペストリーに"hello, world"と織り出す。しかしラッダイト (当時のRedditer) たちは、テールリカージョン、並行処理、大文字小文字の区別を欠いていたため、さほど感心しなかった。 1842 – エイダ・ラブレスが最初のプログラムを書く。彼女の努力は、プログラムを実行するコンピュータが実のところ存在しないというマイナーな問題のために頓挫した。後にエンタープライズアーキテクトたちはプログラムをUMLで書くために彼女のテクニックを再び学ぶことになる。 1936 – アラン・チューリングが存在しうるあらゆるプログラミング言語を発明するが、特許化する前に英国情報部員(後の007)によって抹殺される。 1936 – アロンゾ・チャーチも存在しうるあらゆる言語を発明しているが、より巧みに行った。チャーチのラムダ
#lang racket/gui (define my-language 'English) (define translations #hash([Chinese . "你好 世界"] [English . "Hello world"] [French . "Bonjour le monde"] [German . "Hallo Welt"] [Greek . "Γειά σου, κόσμε"] [Portuguese . "Olá mundo"] [Spanish . "Hola mundo"] [Thai . "สวัสดีชาวโลก"] [Turkish . "Merhaba Dünya"])) (define my-hello-world (hash-ref translations my-language "hello world")) (message-box "" my
Gauche でコードを書いているときにコードが意図どおりに動かないことがあります。そのような場合にデバッグする方法を4つ紹介します。 前提 まず Gauche はリリースされている最新版を使った方が良いでしょう。Linuxのディストリビューションによってはパッケージが古い場合あります。 またScheme は関数型言語なので、デバッグの単位は関数(手続き)ごとに行うことが多いです。一つ一つの手続きが意図どおり動いているのか?を調べながら進めるのが基本になります。 方法1 print デバッグ Gauche には今のところデバッガがありませんから基本的には print デバッグがメインとなります。単純な print デバッグから見ていきましょう。 以下のような sum という手続きで print デバッグしてみましょう。 (define (sum n) (if (= n 1) 1 (+ n
勾配の緩やかな初心者向け Scheme 入門ページです。 コンピュータは使ったことがあるが、プログラミング経験があまりない人を想定しています。 Scheme の解説はすでに山ほど優れたものがありますが、あえて解説記事を書いてみました。 Scheme のような抽象的な話題は波長が合えばすんなりと理解できますが、あわないと全く理解できません。 他の解説を読んで今ひとつよく理解できなかった人は試しに読んでみてください。 この記事の目標はコンピュータ科学の教科書の決定版である SICP を読める程度の Scheme の知識を提供することです。 目次: 処理系のインストール Scheme を電卓代わりに使う リストを作ろう 関数を定義しよう 分岐 局所変数 繰り返し 高階関数 入出力 代入 文字、文字列 シンボル型 連想リスト、ハッシュ表 ベクトルと構造体 構文の定義 (マクロ) 継続 遅延評価 非
15. 構文の定義 (マクロ) 1. 初めに 今回は Lisp 語族に特徴的機能である、自前の構文を定義する方法(マクロ)について 説明します。マクロが定義できるようになると、プログラムがさらに簡潔に 書けるようになります。 マクロとは式の変換です。 式が評価される前に、または、コンパイル時に式が変換されます。 そして、変換後の式が初めからソースコードに書いてあったかのように処理が行われます。 Common Lisp のマクロ定義はかなり複雑ですが、R6RS に準拠した Scheme では syntax-rules という形式によって比較的簡単に定義できます。 syntax-rules を使うと変数補足などのわずらわしいことを気にしないで、 ”この式をこういう式に変換しろ”ということを直接的に書くことができます。 ただし、syntax-rules で記述できないマクロを書くのは Commo
With the release of version 5.0, PLT Scheme was renamed to Racket. (Why?) PLT will continue to maintain and grow Racket as it did for PLT Scheme for 15 years. Our commitment to this product hasn't changed and we will continue to work with all of our users on the usefulness of our programming language and IDE. This web page is maintained for historical reasons only. For all future releases, please
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く