(arity cons) ; -> 2
2010/04/30
2010/04/29
TSS TLS atom?
無駄に複雑に書き直した話。
The Little Schemer, 4th Edition と The Seasoned Schemer に出てくる、atom?手続き。
上が本の序文に記載されているもので、下が書き直したもの。

The Little Schemer, 4th Edition と The Seasoned Schemer に出てくる、atom?手続き。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(define (atom? a) | |
(and (not (pair? a)) | |
(not (null? a)))) | |
(define (atom? a) | |
(every (cut <> a) | |
(map (cut compose not <>) | |
`(,pair? ,null?)))) | |
(define (atom? a) | |
(every (cut <> a) | |
(map complement | |
`(,pair? ,null?)))) | |
上が本の序文に記載されているもので、下が書き直したもの。
labels :
Gauche,
scheme,
The Little Schemer,
The Seasoned Schemer
TSS define?
わりとどうでも良い話です。
10章(The Little Schemer, 4th Edition)では、defineのない小さなLisp処理系を作りました。
上記のようなコードが記載されています。The Little Schemer, 4th Edition でも The Seasoned Schemerでも、このスタイルです。不恰好ですよね。そこで、もう少しどうにかならないものかと考えてみるわけです。
書いてはみるものの、微妙です。微妙なので取り合えずブログに書いとけ、と思うわけです。ただそれだけです。


10章(The Little Schemer, 4th Edition)では、defineのない小さなLisp処理系を作りました。
20章(The Seasoned Schemer)ではdefineのある小さなLisp処理系を作るようです。そこでリストの先頭が(quote define)であるかどうかを判定するdefine?という手続きを作るわけです。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(define (define? e) | |
(cond | |
((atom? e) #f) | |
((atom? (car e)) | |
(eq? (car e)(quote define))) | |
(else #f))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(define (define? e) | |
(let ((kar (if (atom? e) | |
#f | |
(car e)))) | |
(eq? kar 'define))) | |
(define (define? e) | |
(eq? (if (pair? e) | |
(car e) | |
#f) 'define)) | |
(define (define? e) | |
(eq? (and (pair? e) | |
(car e)) 'define)) |
書いてはみるものの、微妙です。微妙なので取り合えずブログに書いとけ、と思うわけです。ただそれだけです。
追記
そうでしたよ。Common Lispなら、こんなどうでも良いこと気にもならんのですよね。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defun define-p (e) | |
(if (consp e) | |
(eq (car e) 'define))) | |
labels :
scheme,
The Seasoned Schemer
Lisp - Free Programming Books
メモメモ。
Lisp
212. An Introduction to Programming in Emacs Lisp
Robert J. Chassell | Free Software Foundation, Inc.
Published in 2002, 314 pages215. Common LISP: A Gentle Introduction to Symbolic Computation
David S. Touretzky | Benjamin-Cummings Pub Co
Published in 1990, 587 pages216. Common Lisp: An Interactive Approach
Stuart Charles Shapiro | W.H. Freeman & Company
Published in 1999, 358 pages217. Common LISP: The Language, 2nd Edition
Guy Steele | Digital Press
Published in 1990, 1029 pages222. Natural Language Processing in Lisp
Gerald Gazdar, Chris Mellish | Addison-Wesley
Published in 1989, 533 pages223. On LISP: Advanced Techniques for Common LISP
Paul Graham | Prentice Hall
Published in 1993, 426 pages224. Performance and Evaluation of Lisp Systems
Richard P. Gabriel | The MIT Press
Published in 1985, 294 pages226. Successful Lisp: How to Understand and Use Common Lisp
David B. Lamkins | bookfix.com
Published in 2004, 360 pages
関連
- vallog: Webで読めるLisp関連書籍
- vallog: Lisp/Scheme Interpreter & Compiler
- vallog: LISP・・・読み物?
- vallog: プログラマは皆どのようにしてLisperと化して行くのか?
- vallog: [Book][Site]Webで読める名著【追加】
読んだ「LET OVER LAMBDA Edition 1.0」
やっとLET OVER LAMBDA Edition 1.0を読み終わりました。読み終わっただけで読みこなしていません。コードもほとんど書いていません。まずは7章に必要な分から優先して書いて、7章のForthが動かせるようにしてみたいです。
この本はCommon Lispのマクロの本です。現時点での感想をざっくりと書いてみます。
この本はCommon Lispのマクロの本です。現時点での感想をざっくりと書いてみます。
- 「schemeの方が好き」 → 「Common Lisp も良いな」と思うようになった
- むしろ、もっとCommon Lispをやってみたいと思うようになった
- nil関連がすごく良い
- Common Lispのコードが読めるようになった
- 依然Lisp-2よりLisp-1が好きかも
- 依然ループより再帰が好き
- 副作用はやっぱり気持ち悪い(なぜか非S式だとそういうことは思わない)
- マクロに対する抵抗が減った
- マクロに対する抵抗は減ったが思っていた以上に難しい
- マクロがある程度読めるようになった
- マクロにもいろいろあることを知った(リーダーマクロ、コンパイラマクロ・・・)
- マクロが書ける(ようになれる)気がしてきた
- マクロすぅぅぅげぇぇぇぇ
- 書いてみると書けない
- 書かないと書けるようにはならないだろうと思う
- マクロが具体的にどう便利で強力なのか見せてもらえた
- Common Lispの伝統的なマクロを読んでいたらSchemeのdefine-syntaxも読めるよになった
- 知っているつもりだったクロージャのパワーはまだまだそんなもんじゃなかった
- 今ならOn Lispが読めるような気がする
著者がすごくCommon Lisp信者です。いたるところで「Lisp最強!!」と仰っています(副音声ですが)。この辺は気をつけて読んだ方が良いと思います。
Lisp/Scheme関連の積読がたくさんあります。次はSICPの続きをやるか、On Lispを読むか、Schemerシリーズの続きを読むか・・・。
Lisp/Scheme関連の積読がたくさんあります。次はSICPの続きをやるか、On Lispを読むか、Schemerシリーズの続きを読むか・・・。
labels :
Book,
common lisp
2010/04/28
読んだ「入門Common Lisp―関数型4つの特徴とλ(ラムダ)計算」
@finalfusionさんに頂いた入門Common Lisp―関数型4つの特徴とλ(ラムダ)計算 を読みました。読んでみたかった本です。
入門書とあるように、ガチの入門書でした。Lisp系の言語の経験が全くない人向けだと思います。
8章が唐突にλ計算です。Lispのコードが読めればこちらも問題ないかと思います。8章だけ入門とは無関係のような気がします。だからこのタイトルなのでしょうけど。
Common Lispにしろλ計算にしろ、もっと良い資料がWeb上にたくさん転がっているかと思います。もしくは今ならこちらでしょうか。
そういえばあとがきに計算論 計算可能性とラムダ計算 (コンピュータサイエンス大学講座)が紹介されていました。この本は評判が良さそうだったので、以前購入したのですが難しくて即挫折して即積読です。積読鋭意継続中。
Lisp/Scheme Interpreter & Compiler
ようやくLOL(LET OVER LAMBDA Edition 1.0)を読了した今日この頃です。わからないことだらけです。7章のForthを実装するところから書いてみようと思っています。
本題
ただのメモです。最近、一日のうちに何度も「PCを開くにも本を開くにも中途半端な時間」が多く発生するので、携帯で2chを見てます。
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://library.readscheme.org/page11.html
Continuations and Continuation Passing Style
http://library.readscheme.org/page6.html
あたりもいいんじゃね?
Kenichi Asai. "Reflecting on the Metalevel Interpreter Written in Direct Style"とか。
字面を見ただけの当てずっぽうですが、The Little Schemer, 4th Edition の最後にSchemeで作る「Lispもどき」は Environment Passing Interpreter なんでしょうか。環境を渡しますよね。
これを実際に書いた時、初めて「環境」というのが何なのか理解できました。
参考
参考になりそうなところをざっくりとメモ。- SECDマシン - Wikipedia
- M.Hiroi's Home Page / Common Lisp 入門:番外編
- secd machine compiler - cranebirdの日記
- 6 The SECD virtual machine
- SpringerLink - Journal Issue
- Reflection
- Continuations and Continuation Passing Style
- Reflecting on the Metalevel Interpreter Written in Direct Style
- 末尾最適化の本 : なつたん
- 物読みファイル: Essentials of Programming Languages -- 3rd Edition ([著]Daniel P. Friedman/Mitchell Wand, [版]The MIT Press)
- Three Implementation Models for Scheme (3imp.pdf) (生駒読書会)
- リリカル☆Lisp開発日記 » Blog Archive » Three Implementation Models for Scheme
- 紫ログ:Three Implementation Models for Scheme (3imp.pdf) - livedoor Blog(ブログ)
- Lisp in Small Pieces: 峯島雄治のブログ
- Lisp in Small Pieces - Google ブックス
- Essentials of programming languages - Google ブックス
- (PDF)Three Implementation Models for Scheme
- (PDF)A Rational Deconstruction of Landin’s SECD Machine
書籍
Schemeのインタプリタとコンパイラのいろんな実装が書かれているそうです。Queinnec Christian
Cambridge University Press
売り上げランキング: 78719
Cambridge University Press
売り上げランキング: 78719
こちらはContinuation-Passsing Interpretersなどが書かれている模様。
Daniel P. Friedman Mitchell Wand Christopher T. Haynes
The MIT Press
売り上げランキング: 100724
The MIT Press
売り上げランキング: 100724
おすすめ度の平均: 
(PDF)Three Implementation Models for Schemeの日本語訳がどこかに掲載されていたような記憶があるのですが、見つかりませんでした。
ところで2chは、iPhoneもAndroidも持っていませんのでこれで見ています。
追記
- Three Implementation Models for Scheme by R. Kent Dybvig - ひげぽん OSとか作っちゃうかMona-
- SECD Mania
- adhoc > memo > SECDR-Scheme を読む
- (PDF)ファーストクラス継続をもつ仮想機械
AIプログラミングのケーススタディ「実用 Common Lisp」
欲しくなりますねぇ・・・。高い・・・。
amazonの内容紹介より
プログラミング言語SCHEMEのKent Dybvig(ケント ディヴィグ)と似てませんか。似てませんね。

@emeitch - 竹内先生曰く、「実用 Common Lisp」はSchemeの優れた再入門になっているとのこと。Schemeファンも必見ですね。
amazonの内容紹介より
この本が扱っているトピックは、人工知能(AI)、コンピュータプログラミング技術、プログラミング言語Common Lispの3つである。著者Peter Nrving(ピーター・ノーヴィグ)は
アメリカ合衆国の計算機科学者。現在はGoogleの研究本部長を務めている。だそうで。
プログラミング言語SCHEMEのKent Dybvig(ケント ディヴィグ)と似てませんか。似てませんね。
2010/04/27
プログラミング言語 一覧、比較、系統、Hello World
メモのメモ。
- プログラミング言語一覧 - Wikipedia
- プログラミング言語の比較 - Wikipedia
- Hello worldプログラムの一覧 - Wikipedia
- Geekなぺーじ : プログラミング言語ヒエラルキー
- The Hello World Collection
- The History of Programming Languages - O'Reilly Media
- Computer Languages History
- diagram & history of programming languages
- Search the Language List
- The Evolution of a Programmer
- Slashdot Comments | Conceptual Models of a Program?
Lisp
関連
2010/04/24
デザインパターンいろいろ
これがおもしろかった。
GoFのデザインパターン。「Gang of Four」って名前、ダサくないですか。
他のパターンも140文字でやって欲しい。
読み物
- 翻訳 - オブジェクト指向プログラムのためのパターン言語の使用
- Java とその他とデザインパターン - Jack in the Sandbox
- Rubyで学ぶオブジェクト指向/デザインパターン
- Matzにっき(2006-09-15)
ある言語で頻繁に使われるデザインパターンは、他の言語ではパターンでさえない。 よって「デザインパターンは言語の弱さを示すサインである」という話。
他
なべあつ
すごく今更なお題ですけども。
なんとなく正規表現は使いませんでした。
そういえば、恥ずかしながら「正規表現」を知ったのはプログラマになってから2年以上も後のことでした。その間、社内で正規表現を見かけなかった環境って一体・・・。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; nabeatu | |
;; 3 - アホ | |
;; 5 - 犬 | |
;; 15 - アホ 犬 | |
(use srfi-1) | |
(define (number->list% n) | |
(map (lambda (x) | |
(string->number (x->string x))) | |
(string->list (number->string n)))) | |
(number->list% 1234567890) | |
; -> (1 2 3 4 5 6 7 8 9 0) | |
(define (number->list n) | |
(map (compose string->number (cut x->string <>)) | |
(string->list (number->string n)))) | |
(number->list 1234567890) | |
; -> (1 2 3 4 5 6 7 8 9 0) | |
(define (contain? n m) | |
(any (cut = m <>)(number->list n))) | |
(contain? 12345 3) | |
; -> #t | |
(contain? 12345 10) | |
; -> #f | |
(define (make-nabe min max) | |
(map (lambda (n) | |
(let ((p (compose zero? (cut modulo n <>)))) | |
(cond ((p 15) "アホ犬") | |
((p 5) "犬") | |
((or (p 3) | |
(contain? n 3)) "アホ") | |
(else n)))) | |
(iota max min))) | |
(define (fizzbuzz) | |
(make-nabe 1 100)) | |
(display (fizzbuzz)) | |
; -> (1 2 アホ 4 犬 アホ 7 8 アホ 犬 11 アホ アホ 14 アホ犬 16 17 アホ 19 犬 アホ 22 アホ アホ 犬 26 アホ 28 29 アホ犬 アホ アホ アホ アホ 犬 アホ アホ アホ アホ 犬 41 アホ アホ 44 アホ犬 46 47 アホ 49 犬 アホ 52 アホ アホ 犬 56 アホ 58 59 アホ犬 61 62 アホ 64 犬 アホ 67 68 アホ 犬 71 アホ アホ 74 アホ犬 76 77 アホ 79 犬 アホ 82 アホ アホ 犬 86 アホ 88 89 アホ犬 91 92 アホ 94 犬 アホ 97 98 アホ 犬)#<undef> |
なんとなく正規表現は使いませんでした。
そういえば、恥ずかしながら「正規表現」を知ったのはプログラマになってから2年以上も後のことでした。その間、社内で正規表現を見かけなかった環境って一体・・・。
追記
会社のせいにしちゃあいけないですね。
LOL defmacro!
まだslimeの使い方がよくわかりません。C-c C-cはコンパイルで、C-x C-eがreplに読み込む、ということくらいでしょうか。その時、コード中に見つからないシンボルがあるとアンダーラインで示してくれるなど(↑画像)、ありがたいです。
schemeにもそういうのないのかな。quack.elにはたぶんないんですよね。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defun mkstr (&rest args) | |
(with-output-to-string (s) | |
(dolist (a args)(princ a s)))) | |
(defun symb (&rest args) | |
(values (intern (apply #'mkstr args)))) | |
(defun flatten (x) | |
(labels ((rec (x acc) | |
(cond ((null x) acc) | |
((atom x) (cons x acc)) | |
(t (rec | |
(car x) | |
(rec (cdr x) acc)))))) | |
(rec x nil))) | |
(defun g!-symbol-p (s) | |
(and (symbolp s) | |
(> (length (symbol-name s)) 2) | |
(string= (symbol-name s) | |
"G!" | |
:start1 0 | |
:end1 2))) | |
(defmacro defmacro/g! (name args &rest body) | |
(let ((syms (remove-duplicates | |
(remove-if-not #'g!-symbol-p | |
(flatten body))))) | |
`(defmacro ,name ,args | |
(let , (mapcar | |
(lambda (s) | |
`(,s (gensym ,(subseq | |
(symbol-name s) | |
2)))) | |
syms) | |
,@body)))) | |
(defmacro/g! nif (expr pos zero neg) | |
`(let ((,g!result ,expr)) | |
(cond ((plusp ,g!result) ,pos) | |
((zerop ,g!result) ,zero) | |
(t ,neg)))) | |
(macroexpand-1 '(defmacro/g! nif (expr pos zero neg) | |
`(let ((,g!result ,expr)) | |
(cond ((plusp ,g!result) ,pos) | |
((zerop ,g!result) ,zero) | |
(t ,neg))))) | |
(nif -1 1 0 -1) | |
; => -1 | |
(defun o!-symbol-p (s) | |
(and (symbolp s) | |
(> (length (symbol-name s)) 2) | |
(string= (symbol-name s) | |
"o!" | |
:start1 0 | |
:end1 2))) | |
(defun o!-symbol-to-g!-symbol (s) | |
(symb "G!" | |
(subseq (symbol-name s) 2))) | |
(defmacro defmacro! (name args &rest body) | |
(let* ((os (remove-if-not #'o!-symbol-p args)) | |
(gs (mapcar #'o!-symbol-to-g!-symbol os))) | |
`(defmacro/g! ,name ,args | |
`(let ,(mapcar #'list (list ,@gs)(list ,@os)) | |
,(progn ,@body))))) | |
(defmacro! square (o!x) | |
`(* ,g!x ,g!x)) | |
(macroexpand '(square (incf x))) | |
Gaucheのshiroさんも以下のようにおっしゃっているので、きっとslimeって多機能なんだろうなぁ。
shiro: うーむCL+slimeで作業してるとやっぱりgauche+quackは物足りなく感じるなあ。 http://bit.ly/b35LjH
labels :
common lisp,
LOL
部分適用, 関数合成
cutとcompose 良い。
関係ないけどfold-right。
確かsicpの2章にcomposeと一緒にrepeatedってのが出てたような。
ところでsicpって「シックピー(sick-pea)」と読むらしいですね。srfi同様「えすあいしーぴー」って読んでました。
一般的な再帰からnamed-letに書き直せない病。(letrecを経由するといける)


This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; cut, compose | |
(use srfi-1) | |
(define (make-fizzbuzz min max) | |
(map (lambda (n) | |
(let ((p (compose zero? (cut modulo n <>)))) | |
(cond ((p 15) "fizzbuzz") | |
((p 5) "buzz") | |
((p 3) "fizz") | |
(else n)))) | |
(iota max min))) | |
(define (fizzbuzz) | |
(make-fizzbuzz 1 100)) | |
(display (fizzbuzz)) |
関係ないけどfold-right。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; fold-right | |
(display | |
(fold-right (lambda (e acc) | |
(let ((p (compose zero? (cut modulo e <>)))) | |
(cons (cond ((p 15) "fizzbuzz") | |
((p 5) "buzz") | |
((p 3) "fizz") | |
(else e)) acc))) | |
'() (iota 100 1))) |
確かsicpの2章にcomposeと一緒にrepeatedってのが出てたような。
ところでsicpって「シックピー(sick-pea)」と読むらしいですね。srfi同様「えすあいしーぴー」って読んでました。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; repeated | |
(define (repeated n f) | |
(lambda (x) | |
(if (zero? n) | |
x | |
((repeated (- n 1) f)(f x))))) | |
((repeated 3 (lambda (x) | |
(* x 3))) 3) | |
; -> 81 | |
((repeated 3 (cut * <> 3)) 3) | |
; -> 81 | |
(define (repeated n f) | |
(lambda (x) | |
(letrec ((rep (lambda (n acc) | |
(if (zero? n) | |
(acc x) | |
(rep (- n 1) | |
(lambda (y) | |
(f (acc y)))))))) | |
(rep n identity)))) | |
((repeated 5 (cut * <> 2)) 2) | |
; -> 64 | |
(define (repeated n f) | |
(lambda (x) | |
(let loop ((n n) | |
(acc identity)) | |
(if (zero? n) | |
(acc x) | |
(loop (- n 1) | |
(lambda (y) | |
(f (acc y)))))))) | |
((repeated 5 (cut * <> 2)) 2) | |
; -> 64 |
一般的な再帰からnamed-letに書き直せない病。(letrecを経由するといける)
2010/04/22
コンパイラの別名を「マクロ」という。
LET OVER LAMBDA Edition 1.0の6章「コンパイラの書き方とベンチマーク」P.235より。この本は終始こんなノリ。
コンパイラを作るのは、Lispを知らなければぞっとするような仕事なのだろう。
コンパイラを書く際のLispの優位性は、他の言語に比べてちょっと優れているという類のものではない。
コンパイラはやさしい。
マクロはプログラムをある言語から他の言語へとコンパイルする。副音声がずっと「LISP最強!!」。
2010/04/21
Pythonを突っ込んでEmacsで書けるようにしてみた
Pythonを入れてみました。Emacs言うてもMeadowですけども。
参考にしたのはここ。
.emacsに適当にC-cpythonなどを追加。
(defun python-other-window () "Run py-shell on other window" (interactive) (python-mode) (split-window-horizontally 90) (let ((buf-name (buffer-name (current-buffer)))) (py-shell) (get-buffer-create "*python*") (switch-to-buffer-other-window (get-buffer-create buf-name)))) (define-key global-map "\C-cpython" 'python-other-window) |
Pythonは、GAEで2.5.xが要求されたので、win用インストーラのある2.5.4を選択しました。
Emacs 画面端で折り返さない
切り替えたいことって、そんなに無い気もしますが。
(setq truncate-lines t) (setq truncate-partial-width-windows t) (defun togle-truncate-line () (interactive) (let ((p (null truncate-lines))) (setq truncate-lines p) (setq truncate-partial-width-windows p) p)) |
labels :
Emacs
2010/04/20
オブジェクト指向の達人ってどんだけ凄いの?
9 :仕様書無しさん:2007/11/23(金) 04:57:39 日常会話でオブジェクト指向用語が出てくるぐらいすごい。 この間、俺とワイフの多重継承したチルドのインスタンスがニューされたよ。 目元は俺を継承して、口元はワイフを継承している。 きっと多彩なクラスをインプリメンツしたクレバーなチルドになるぞ。 フューチャーが楽しみだ 10 :仕様書無しさん:2007/11/23(金) 05:06:18 ルー語じゃねぇかwww 12 :仕様書無しさん:2007/12/03(月) 20:27:04 昨日彼女と一緒にメメント観てたらいつのまにかチムポがブリッジしちまってさー そしたら彼女が俺の上にビジターしてきてアダプタしちゃったよ まあ全部俺の妄想で本当はシングルトンな毎日なんだけどさ |
labels :
Web
イクラちゃんってBoolean型だよな
labels :
Web
2010/04/19
無料CSVデータ
16の「海軍兵学校卒業者数一覧」と17の「ガンダムカラー」はなかなかストレンジ。
- 郵便番号データダウンロード - 日本郵便
- 住所データ、住所マスタ、住所CSVの無料ダウンロードサイト!【住所.jp】
- データダウンロード(CSV)│外国為替取引 セントラル短資FX
- みずほ銀行:ヒストリカルデータ
- 日本比較教育学会「比較・国際教育情報データベース」ダウンロードページ
- ATOK用郵便番号辞書配布サービス - 岐阜・大垣・名古屋のホームページ制作会社 > WORKSPACE > ソフトピアジャパン
- 株価データ情報
- アメダス気象図(近畿中国四国)
- 土木研究所観測データダウンロード
- 松山市水源状況・雨量 一覧表のダウンロード
- 株価データ ダウンロード
- ヒストリカルデータ - マーケット情報 - 外国為替(FX)を資産運用に変える。安心で選ぶならマネースクウェア・ジャパン
- 農林水産消費安全技術センター / 農薬登録情報ダウンロード(csvファイル)
- グリーンシート銘柄のCSVデータダウンロード
- ジャパンネット銀行:Japan Net Bank|CSVファイルのサンプルダウンロード|
- CSVファイル:heigakko.csv - 通信用語の基礎知識
- Kitbox - INDEX
- みどりのデータ
こっちが良いかも。
- Google Trends、トレンド情報をCSVでダウンロード可能に | ネット | マイコミジャーナル
- YouTube Inshightの解析データをCSVダウンロードしてみた - WEBマーケティング ブログ
追記
Gauche CSV
勝手がわからなかったのでmemoがてら。サンプルに使ったデータはこちら。
今回のサンプルにはちょっと大きかった。
今回のサンプルにはちょっと大きかった。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(use text.csv) | |
(use gauche.charconv) | |
(let ((file-name "../../data/43kumamo/43kumamo.csv")) | |
(length | |
(call-with-input-file file-name | |
(cut port->list (make-csv-reader #\,) <>) | |
:encoding 'shift_jis))) | |
; -> 1874 | |
(let ((file-name "../../data/43kumamo/43kumamo.csv")) | |
(length | |
(call-with-input-file file-name | |
(lambda (in) | |
(port->list (make-csv-reader #\,) in)) | |
:encoding 'shift_jis))) | |
; -> 1874 | |
(let ((file-name "../../data/43kumamo/43kumamo.csv") | |
(reader (make-csv-reader #\,))) | |
(length | |
(call-with-input-file file-name | |
(lambda (in) | |
(port->list reader in)) :encoding 'shift_jis))) | |
; -> 1874 | |
(let ((file-name "../../data/43kumamo/43kumamo.csv") | |
(reader (make-csv-reader #\,))) | |
(let/cc skip | |
(call-with-input-file file-name | |
(lambda (in) | |
(port-for-each (lambda (fields) | |
(skip fields)) | |
(lambda () | |
(reader in)))) :encoding 'shift_jis))) | |
; -> ("43201" "862 " "8610000" "クマモトケン" "クマモトシ" "イカニケイサイガナイバアイ" "熊本県" "熊本市" "以下に掲載がない場合" "0" "0" "0" "0" "0" "0") | |
(call-with-input-string "\"aaa\",\"b | |
bb\",\"ccc\",zzz,\"y\"\"Y\"\"y\",xxx" (make-csv-reader #\,)) | |
; -> ("aaa" "b\nbb" "ccc" "zzz" "y\"Y\"y" "xxx") |
参考
- Gauche ユーザリファレンス: 6.19 入出力
- Gauche ユーザリファレンス: 9.2 gauche.charconv - 文字コード変換
- Scheme:テキスト処理
- DouKaku? 4628 shiro: Gaucheでは、「shift jisで...(文字コードの変換) - Comment detail
- RFC 4180対応版 CSVレコードの分解 DouKaku?
- Gauche で CSV 形式のデータを読み込む : Serendip - Webデザイン・プログラミング
- Karetta|[Gauche] CSV出力
- CSVファイルを読む - Gaucheクックブック
今更ながら、どう書く?orgすげーな。shiroさんのコードがあるある。
labels :
Gauche
2010/04/18
邪悪なPostScriptコード
%!OPS-1.0 %%Creator: HAYAKAWA,Takashi |
邪悪過ぎませんか・・・。
私も、PostScriptはちょっぴり書くことがあるのですが、とても読めません・・・。そもそも読めるようなものなんでしょうか・・・。
%!PS-Adobe-3.0 % factorial /fact { 1 dict begin /n exch def n 1 eq n 0 eq or { 1 } { n 1 sub fact n mul } ifelse end } def 5 fact % 120 |
gif
こっちもすごいなぁ。gifにできるんですね。
たまには、スタック指向な言語もいかがですか。
%!PS-Adobe-3.0 %%BoundingBox: 0 0 100 20 %%Title: orz.ps %%Creator: @aka %%CreationDate: Thu May 19 23:06:30 2005 %%EndComments 64 dict begin /dots 14 def /Helvetica-Bold findfont 18 scalefont setfont /orz { 0 1 dots { /head exch def 0 0 moveto dots head sub { (.) show } repeat (o) show head { (.) show } repeat (rz) show showpage } for } def orz end showpage %%EOF |
9LISP
9LISPでは、LOLの「第7章 Lispを動かすForthを動かすLisp」を参考にPostScriptを実装してみたい、というのも当面の目標の一つです。最終的にはS式で書けるPostScript的な何かができたら良いなーなどと。たまには、スタック指向な言語もいかがですか。
- PostScript - Wikipedia
- Factor - Wikipedia
- Forth - Wikipedia
- PostScript 基礎文法最速マスター - daily dayflower
- 補遺: PostScript の cvx とクロージャ - daily dayflower
- リリカル☆Lisp開発日記 » Blog Archive » PostScriptの上のLispの上のPostScript
- 和田英一@日本初ハッカーはちょっと変わった絵を描く/Tech総研
LispとPostScriptさえあれば私はハッピーになれる。
関連
Adobe Systems
アスキー
売り上げランキング: 332789
アスキー
売り上げランキング: 332789
おすすめ度の平均: 
トーマス マーツ
東京電機大学出版局
売り上げランキング: 1059666
東京電機大学出版局
売り上げランキング: 1059666
おすすめ度の平均: 
labels :
Memo,
PostScript
登録:
投稿 (Atom)