書いただけで放置していたSICPの図形言語で遊んでみました。
「黄金四角形に現れる正方形の中心を曲線で結ぶ(SBR)」ってのをPostScript(vallog:PostScript)でやろうとしてうまくできず、図形言語ならうまいことできるんじゃないかなーなどと思いつつ・・・そのまま遊んでました。
書いただけで放置していたSICPの図形言語で遊んでみました。
「黄金四角形に現れる正方形の中心を曲線で結ぶ(SBR)」ってのをPostScript(vallog:PostScript)でやろうとしてうまくできず、図形言語ならうまいことできるんじゃないかなーなどと思いつつ・・・そのまま遊んでました。
9LISPはKPFのメーリングリスト(ミニ勉強会やりませんか?)から始まりました。
KPF(熊本プログラミングフリークス)はTwitterから始まりました。
KPFを始めたお陰で今年はたくさんの変態プログラマに会うことができました。
KPFを始めたお陰で熊本でLISP勉強会、つまり9LISPを始めることができました。
言ってみるもんですね。
9LISPは朝10:00から勉強会を行っています。
開催スパンは原則的に隔週で、土曜日に行っています。
勉強会後には希望者でランチしてます。たまに09:00からモーニングコーヒーミーティングしたりもします。
ブログに感想や進捗を書いてなかったので、少し書き残しておきます。
こうやって見ると毎回初参加者の方がいるのがおもしろい。
参加者:6人
キックオフミーティング
9LISP発足後2ヶ月を経過し初めての会。
急な開催(前日アナウンスだったような?)にも関わらず6人も集まり驚く。
ここは熊本ですよ?
LISP勉強会ではあるが、Common LispではなくSchemeの学習から入ることに決定。
参加者:6人
初参加者:1人
ランチ:5人
毎回宿題を出すことにする。
課題について事前に質疑応答できるようにする方が良いのではないか。
会の間にもっとコードを書けるように事前に準備が必要ではないか。
参加者:6人
初参加者:1人
ランチ:5人
宿題をやってきた人は少なめ。
宿題については事前にWeb上にアップしておく方が良いのではないか。
なにかテキストに沿って進めていってはどうか。
SchemeらしさLispらしさ、そういうものがもっと良くわかる勉強会が良い。
参加者:6人
初参加者:1人
ランチ:4人
テキスト:The Little Schemerを使って進め始める。
読書会、輪読会等に参加したことのある人がおらず、体当たりで進めることにする。
テキストは問答形式となっており、一問一答。
洋書なので、参加者一人につき一つのQ&Aを読み、訳す形で進めることにする。
疑問や不明な点があればホワイトボードなどを用いて議論。
S式を二分木や「箱とポインタ記法」などの図に描いてみたりする。
経験者の脳内イメージを描きだしてみる。
テキストはP.8までを終える。
今後の課題はやはりWeb上でのコード共有と、会の間にもっとコードを書きたい。
ランチではSQLや集合論、JavaScriptエンジン、アセンブラ、組み込み、制御系などについて大いに盛り上がる。
参加者:5人
初参加者:1人
ランチ:4人
前回に引き続き、テキスト:The Little Schemerを進める。
P.8 ~
復習と初参加者を考慮し、前回進んだ部分を復習。
今後も会の始めに復習を行うことにする。
復習の仕方は検討が必要。
Scheme/Lisp未経験者だった参加者からは、なかなか頭が切り替わらないとの声も。
テキストの和訳はないのか?→絶版(Scheme手習い)
9LISPの読み方は?当初「キューリスプ」だったが、あえて決めない方向に変更。
キューリスプ、クリスプ、クリスピー、ナインリスプ。
読みたいように読んでください。
参加者:7名
初参加者:1名
ランチ:7名
2009/01/23
2009/02/06
2009/02/20
The Little Schemer, 4th Edition posted with amazlet at 09.12.21 Daniel P. Friedman Matthias Felleisen おすすめ度の平均: 小さなScheme処理系で学ぶ数学基礎理論 |
7名(初参加者1名)
ランチ7名
テキスト:The Little Schemer
Chapter 2 ~
P.15 ~ P.21 「or」の手前(lat?)まで
lat?手続き(list of atoms の略かな?)を定義し、1行づつ動作を追って説明されているところまでを終える。
The Little Schemer, 4th Edition posted with amazlet at 09.12.21 Daniel P. Friedman Matthias Felleisen The MIT Press 売り上げランキング: 22002 おすすめ度の平均: 小さなScheme処理系で学ぶ数学基礎理論 Schemeが好きになります 英語であるのが苦痛にならない楽しさ 面白いスタイル |
PostScript(R) Language Program Design (APL) posted with amazlet at 09.12.02 Adobe Systems Inc. Addison-Wesley Professional 売り上げランキング: 59322 |
BlueBook, Thinking in PostScript 他はこちら
にコメントが付いてました!
このfilterだと入れ子のリストは処理できないですね
たとえば
(1 2 (3 4) 5 (6 7))
ホンマや・・・。
ということで寝る前に
(define filter (filter even? '(1 2 3 4 5)) |
結果は、リストのネストもそのままにすべきか?ということで・・・
(define filter (filter even? '(1 2 3 4 5)) |
どっちだろ。srfiだと・・・
(use srfi-1) |
今までまったくコメントチェックしてませんでした。今度から気をつけます。(サイドバーに"最近のコメント"を追加して、メールでも知らせてくれるようにした)
なんか久しぶりにScheme書いた気がした。
いまさら掘り返してみる。
(3秒で飽きたものも含め)
含むならこの辺も
わりと長くやったもの
JavaScriptはコアJavaScriptと言えば良いのか?DOMとかブラウザとか抜きで、関数型っぽいところとプロトタイプベースのオブジェクト指向が面白そうでやってみた。サイ本の後半には興味が持てなかった。Schemeで書いたコードをJSで書いてみたりというのも楽しんだ。Win環境で仕事の補助的な単純処理バッチも結構書いた(JScript)。
SQLとC#は仕事で2年半くらい結構みっちりやった。行数にして合わせて数十万行くらいは書いたと思う(一番書いた時で3万行/月くらい)。そのうち2年くらいは1.1だけど(笑)笑えない。MCTSも2.0なら3つとも取れた。MCPDは落ちたまま再挑戦してない。そのうちMCPD取って3.5にアップグレードしたいなーなどと思っていたが、今となってはどうだろうか。
Schemeはここ1年くらい結構継続してやってるけどずっと初級者。PostScriptはつい最近2ヶ月ほど入門的なことを。
ごく最近はPrologの入門的なことをだらだらと少々・・・。
将来設計はなし。興味が湧いた言語にただ手を出してるだけ。仕事はドロップアウト中。「自分探しの旅(笑)」とかに似たような現実逃避中なのかな。しかし結構充実している。たぶんやりたい放題だから。昼寝してやりたいことやって好きな時に自由にプログラミングしてるからかな。時間的余裕がたっぷりあるからなのかも。こういうスタイルで生活費でも稼げればラッキーなんだけどなー。
お金を稼げるプログラマになりたいな。それも"頑張り次第"とか"書いたら書いただけ"とか"仕事をさばいた分だけ、さばけばさばくほど"なんていうんじゃなくて、もっと怠惰にプログラマブルに。その方がプログラマっぽい。
華麗に脱線。
% X is 1 + 2 + 3. % X is 1 + 2, X is 3 + 4.
square(X, Y) :- /* |
fly(X) :- airplane(jet_plane). superman(taro). /* fly(taro). fly(Y). |
% 節? female(fune). father_of(namihei, sazae).
mother_of(fune, sazae).
% XはYの親である parent_of(X, Y).
% XはYの息子である suns_of(X, fune).
% XはYの娘である
% XはYの祖父である /*
% XはYの祖母である /* |
% socrates mortal(X) :- /* mortal(Y). human(Y). human(socrates). mortal(socrates). */ % 終了は |
*mortal : 死ぬ運命にある、死を免れない
Hello world!
-module(hello). hello () -> |
factorial
-module(fact). fact(1) -> % fact:fact(5). |
fibonacci
% 一般的にファイル名と同じ名称を指定する fib(1) -> |
C-c C-k コンパイル
%!PS-Adobe-3.0 % PostScript実習マニュアル % %%Title % P.71 page.ps %%Page: (first page) 1 |
そうそう、2ページ目以降ってどうやるんだろうって思ってたんだった。この方法だけなのかな。
%!PS-Adobe-3.0 /square { /specialsquare { 0 0.4 0.8 setrgbcolor |
%!PS-Adobe-3.0 % clip /star { /polkadot { /polkadotstar { /polkadotstarbyeo { 1 0 0.4 setrgbcolor |
%!PS-Adobe-3.0 % P.58 3.7.1 ベジェ曲線の基礎 140 450 100 650 500 750 300 450 bezier |
%!PS-Adobe-3.0 % P59 3.7.3 ベジェ曲線の連結 150 600 100 750 350 700 250 600 300 450 500 400 400 600 bezbez |