arc

研究対象追加

arc

bknr のodbとlisp->javascriptsトランスレーター

目下の課題

arc

道具をそろえる。 arcがまだ手に馴染んでいない。永続化。 allegro cacheの研究 kahua object db の研究 bdbの研究 必要に応じてdb自作。とりあえずAPI決定。実装はその場しのぎ。 プレゼンテーション。 htmlマークアップの生成関数群そろえる(arcの延長) ja…

無名関数の略式

arc

1引数ラムダを下記で示すのであれば、 [ + _ 10 ] 0引数ラムダを下記で示すのも欲しい。 { + 10 10 } あれ、サンクとかに必要にならない?

aform, fnid

arc

CPS形式でwebのシーケンスを記述できる仕組みはfnid関数で 継続のキー作成 管理テーブルに継続を登録 継続を必要とするhttpリクエストは管理テーブルから継続を取得 ということをやっている。 call/ccというよりCPSなのね。lambdaが頭の中でぐるぐるとしてき…

モジュール化

arc

arc forumでもmoduleの必要性について議論がある。 afnで生成した無名関数をwithでレキシカル環境にバインドする。 モジュールロード用の関数をdefで定義する。 モジュールロード用の関数がexportするものを格納したテーブルを返す。 みたいな仕組みでどうに…

パッケージシステム

arc

名前空間1つだとつらい感じがする。 pgみたいに短い名前を多用するスタイルだと特に名前空間の分割が要りそうな気がするけど、どういう手法をとるべきなんだろう。

あほだなぁ。

arc on javascript http://halogen.note.amherst.edu/~jdtang/arclite/

野望

arc

Webの開発を抽象的にやりたい。 確かにarcではスケッチを書くようなWebアプリ開発ができる気がする。 Javascript(AJAX)の統合とかもLISPならできそう。 Javascriptとのシームレスな連携。 lisp -> Javascriptへのコード変換の仕組み サーバープログラムの一…

applyについて

arc

下記でapplyの所とかがすっと出てこないなぁ。 ,g の部分がリストになるからapplyじゃないと適用できないのだけれど。evalとapplyの超循環にも似ているけれど、それほどたいそうな話しでもなさそうだし。 ,gのところを,@gとかするのはアホな勘違いだし。 何…

macroの展開順番

arc

arc.arcのソースを見たらcomposeの下でw/uniqとかaifを定義しているからuniqとかifを使っているようだ。 意図してのことなのか。macroは評価順を気にする必要があるのか。arc.arcの一番下に下記を置いたら一応動いた。 idfnのところってどういう意図なんだろ…

compose の実装

arc

なかなか美しかった。 on lispだと、変にcomposeと別の機能が一緒くたになっていて無駄に複雑な気がする。 applyのあとのifはawhenでいい気がするのと'idfnというダミー値(?)はよくわからん。ああ、labelsがないのはLisp-1だからなのか。もしかして。 い…

gensymの代わりはuniq

arc

afnも組込まれてた。

arc

composeの定義を見たら、afn発見。だけれどもrfnとの住み分けが不明。 rfn要らないんじゃないか? たまたまふたつあるだけかなぁ。 uniqをletで使っているのだけれど、この頃にはw/uniqがなかったのかなぁ。

アナフォリックマクロとperlの特殊変数

arc

アプローチが似ている気がする。 情報の伝達にグローバル的なものを使うという点でかしら。大した類似性でもないか。あ、でもLarryが「特殊変数を使うべきだ。代名詞を使うように。」みたいなことをラクダ本に書いてたから、やっぱり起源は同じだな。aandの…

=の挙動。

arc

ソース見てみないとだけれど、defineとset!を兼ねてる感じなのか。 レキシカルスコープで存在しない変数を=で設定したら、グローバル変数になってしまう。既存の変数だと思って設定しようとしたらタイポでグローバル変数作ってしまう感じ? 多少ラディカルだ…

多値

多値の有用性について本質的に理解できているわけではないのだけれど、arcで多値は使えないのかな。 letとかwithでつじつまあわせているようにもみえる。 まあ、いいのかなぁ。 arc> (let (x y z) (list 1 2 3) (prn x "," y "," z )) 1,2,3 1

アナフォリックマクロ

arc

良く使うパターンをマクロ化する典型だったんだ。 if等で評価したものを後に使いまわすことは仕事でも良くアルパターンで、同じようなコードをいつも書くのだけれど、エレガントではない気がしていたが、答えはこれだったんだ。 perlで実現出来ないものか。p…

計算効率化のためのマクロ

arc

inは引数の評価を先送りすることで計算量を効率的にしている。 つまり遅延評価なんだなぁ。マクロ手法をいろいろ見てると必死で評価を先送りして、抽象的にかつ計算量を少なくしようとしているように見える。遅延評価といえば、haskell。 haskellの力の源泉…

集合演算

arc

inがあらかじめ用意されているようだ。 inqじゃないのね。 arc> (in 'a 'a 'b 'c) t

wiki的ページは簡単に書けてきた。

arc

blogのソースを盗みまくったらwiki的なページは結構簡単にかける。 wiki記法とかのパースは全然できてないけど。 画面遷移は継続で楽にかけるけど、どんな抽象化をしてるのか実装見ないと不安。キーワードに関する情報をいろいろ集めて表示するページを前か…

汎変数

いけないと思いつつ、コンテンツの享受(つまり本を読む)。 on lispより。setfの引数は汎変数なんだ。しらなかった。なんとなく使ってた。 arcの=の引数も汎変数じゃないか。あーよくわからない。define-modify-macroを使えば楽に汎変数として動作するマク…

deftem, inst

arc

deftemでtemplateを定義している。 instでテンプレートにコンテンツを埋め込んでいる。データ構造の実装はtableみたい。構造体っぽいかんじだけど。 そういえばperlと同様に構造体は言語コアで提供しないのかなぁ。 関数で抽象化しろって感じ? (deftem post…

pgとsj, arcとapple

どうでもいいはなしなんだけれど、ポルシェはいいなぁ。ドイツプロダクトってやっぱりいい。 ポルシェ好きなのかフェラーリ好きなのかはっきりしないpgなのだけれども、arcはやっぱり職人気質なかんじだなぁ。pgとジョブズ、arcとapple(mac)というメタファー…

アンビエント系

on lisp そのまま(しかも不完全版)だけれど、amb計算用。 (= paths* ()) ;; cc stack. (= failsym '@) (def choose ( (o choices) ) (if (no choices) (fail) (point cc (do (push (fn () (cc (choose (cdr choices)))) paths* ) (car choices))))) (= fai…

arcを使っていく方向で

arc

しばらく進めよう。 arc自体を見るのはもう少しなれてからだなあ。 いろいろ気になってしょうがない。情報源はsource位しかないのだけれど。

rfnによるローカル再帰クロージャ

arc

Yコンビネーターっぽい使い勝手。 arc> (= x (rfn ff (x) (prn "hello " x) (sleep 3) (ff x) )) arc> (x "world") 無限ループ。

a~について。

arc

aで始まるのはどういう意図なんだ? awhenとか。実用処理系としてどうなのなんて話がforumで出てるみたいだけど。 paulが培ってきたノウハウがつまっている感じはする。

細かい話だけれど

arc.arcのsystem "mkdir -f " というのはubuntuでは実行できないため、修正してみたり。 "system -p " とかでいいのかな。

継続を活用した無限ループっぽいもの。

再帰呼び出してきdefopを書いてみたが動かなかった。 理解が足りていないのか、想定している抽象化が間違っているのか。

webサーバの非同期起動ってどうするんだろう。

thread回りを見てみる必要があるか。 gambit-Cみたいにthreadが軽量だったりするのだろうか。 process間の通信とかの抽象化はpgにこだわりあるのかな。 (asv)を起動してarcプロンプトに戻る方法がわからん。 初歩的。