You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
前回の続き.evalの本丸である関数適用の説明に入ろう. consセルの評価 関数適用が起こるタイミングとはすなわち,consセルが評価されるタイミングである.まずは,consセルのデータ構造を確認しておこう.consセルは,次の形をもつトークン列である. \@tlabel@cons{\carXX\cdrXX} \carXXがCAR,\cdrXXがCDRを表す制御綴りであり,展開するとLISP on TeXにおけるオブジェクトの形式をしたトークン列を得ることができる. consセルの評価規則は簡単で, CARを評価して,適用可能なオブジェクトを得る CDRを引数として,さきほど得られたオブジェクトに適用する 関数やクロージャの場合は各引数が評価される.マクロの場合はそのまま引き渡す だけである.consセルの評価規則の実装,\@eval@consを確認しよう. \def\@eval@con
LISP on TeXネタの最終消費作業*1.今回は評価器編.ここが本丸と言いたいところだったが,あまりに分量が多かったため,評価器編は2回に分割する.前編はevalの基本構造,後編は関数適用がメインである. データ構造と評価の基本構造 再確認になるが,LISP on TeXで用いられるデータはすべて,次の構造をしている. \@tlabel@hoge{contents} ここで,制御綴り\@tlabel@hogeは型の情報を示すラベル(型ラベル)である.波括弧の中身はデータ本体である. \@tlabel@hogeを展開すると,次のトークン列 \@eval@hoge\@apply@hoge\@@apply@hoge を得ることができる.最初の制御綴りが,型hogeの値に対するevalを実現しているマクロ,後者2つがapplyを実現するためのマクロになっている. 評価器の起動 データ構造がわか
LISP on TeXネタを全部消費して,新たなるTeX芸へ向かうためのソリューションその2.今回はパーサ編.要はS式を解釈して前回のデータ構造編で説明したデータへ変換するマクロがどのように構成されているかを示す.これから説明するマクロは,lisp-read.styにそのほとんどが記述されている. はじめに 実装説明に入る前に,パーサ全体にかかる注意事項を述べておく.まず,LISP on TeXの文法はLL1であるので,字句解析と構文解析をごちゃ混ぜにした実装になっている.また,一部のマクロを除き,パーサのマクロは \def\controlsequence#1#2{....} の形で定義されている.#1は制御綴りで,#2は現在解析中の先頭文字である.これらのマクロは,#1の中身を\cs,パースの結果得られたデータ構造を\@tlabel@xxx{hoge}とすると \cs\@tlabel@x
この記事はTeX & LaTeX Advent Calendar 2013の12/25担当分です. < 12/24 は munepiさん || 2014/12/1は\@undefined はじめに TeX & LaTeX Advent Calendar 2013のトリはLISP on TeXとなった. 今年はTUG2013での発表という大イベントがあった.そのときはなるべく「急カーブ注意」なことは避けてきたのだが,標識3個くらいまでならむしろやったほうが良かったのではないかと後悔したのが記憶に新しい*1. 今日はそのリベンジとして,LISP on TeXの中身を説明していこうと思う*2.今回はデータ構造にのみ言及する.TeXでプログラミングしたいキチガイコアな人からLISP on TeXの型を拡張したいという変態まで,参考になれば僥倖である*3. LISP on TeXのデータ構造の基本形
Very nice post. This is one of those ideas that I had wish I had thought of first. As an aside it would be representational to have at least one of the Clojure examples use the -> or ->> macros. I do not see this often in historical Lisps, but it's idiomatic in Clojure. Thank you for taking the time to do this. ReplyDelete
This master menu first lists each chapter and index; then it lists every node in every chapter.
MiSPLi: http://mooz.github.com/mispli/ MiSPLi Emacs に出会ったのが三年前. それから一年程して elisp をいじり始めたので, 僕と Lisp との付き合いはかれこれ二年ほどになる. JavaScript を始めたのが一年前だから, 僕の中では C 言語に次いで付き合いの長い言語だ. 必要にかられたときにちょこちょこと elisp を書いて, 終わったらしばらく別れを告げる. そんな中途半端な付き合いを続けていた三月も終盤, 竹内先生の書かれた「初めての人のための LISP」を読み, その内容に深い感銘を受けた. Lisp を Lisp で実装する, といった章があり, これまで何となしに使っていた Lisp の中身を垣間見ることができたような, そんな気分になっていた. その時に, 「ひょっとしたら僕にも Lisp の処理系を実装でき
Lispマシン CADR ドキュメント和訳とか 2011/FEB/20 2010/MAR/20 たけおか@AXE twitter: takeoka たけおかのプロフィール 1980年代: UNIXの仮名漢字変換システムWnnや Temporal Prolog(時 相論理Prolog)を京大数解研の地下辺りで作ったり。渋谷や神保町 辺りで国産X Window端末などの設計開発に携わる。TCP/IPスタッ クを自分で書く 1990年代初頭:豊橋技科大 湯淺研にて、1024PE規模の超並列計算機 “SM-1”のLSIハードウェア、基本ソフトウェアの設計開発に携わる。 現在: 実時間OSを作らせたり、 Linux, BSDのコアな移植をさせている 湯淺研 SM-1 フロントエンドはSparc 開発環境はCommon LispとC 萩谷さんに貰った (サインはしてくれない) ザウルス SH-3版 (
スポンジで虎を倒せるんだよ? (you can take down a tiger with a sponge, right?)
ニコ動で動作するLispインタプリタ作ったよ。わーい \(^o^)/ いわゆるpure lispってやつです。12人の妹は関係ありません。妹より巫女さんの方がいいよね! 謎の作品一覧 mylist/4808991 (追記5)ニコスクリプトの仕様変更のため、lambdaとdefunが動作しなくなりました。それ以外は大体動きます。 Lispが分からない方ともっと長時間いろいろしたい方はこちら→sm3484521
Object-Oriented Programming (OOP) serves as a cornerstone within the expansive realm of computer programming, shaping the way developers design and build software systems. Characterized by its employment of objects and classes, this approach provides a solid structure for simulating complex systems. In this discussion, we delve into ten fascinating aspects of OOP that highlight its importance and
install | tutorial | forum This site is about Arc, a new dialect of Lisp. Arc is designed for exploratory programming: the kind where you decide what to write by writing it. A good medium for exploratory programming is one that makes programs brief and malleable, so that's what we've aimed for. This is a medium for sketching software. Arc is unfinished. It's missing things you'd need to solve some
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く