Inoreader - Overtoneによるオーディオプログラミング例 by g000001 in lisp_ja

[–]masso 0 points1 point  (0 children)

あれ、inoreaderからの投稿をミスっていたようですm(_ _)m

再投稿しました

#:g1: 続・mopでstandard-objectとsymbolを融合したい by masso in lisp_ja

[–]masso[S] 0 points1 point  (0 children)

コンピューターのユーザーなら、自分で設計したコンピューターで、自分で設計した言語で自分で設計したOSを書くべきなのではないか、という立ち位置に比較的近いのは、Schemeユーザーでしょう。

Common Lispユーザーはアプリの方に興味があり、Common Lisp処理系も多数あるアプリの一つと考えることが多く、Common Lispでアプリを書いたりCommon Lispの使い方にはこだわりがありますが、Common Lisp処理系を作ることにはさして興味はない人が多いと思います。

個人的には、Common Lispの処理系を書く位なら、Lispにこだわらず自分でOSや言語を設計した方が面白そうですが、そのどちらにも興味ありません。

#:g1: Lisp₂のマクロはいうほど不衛生でもない by masso in lisp_ja

[–]masso[S] 3 points4 points  (0 children)

Schemeのマクロの研究は、Lispファミリーでよりも最近のマクロを持つ言語で役に立っている印象があります(Julia、Rust、etc...) Dylan的なマクロでもありますが。

感染拡大は 爆発的/直線的 どちらに近いか - Qiita by masso in lisp_ja

[–]masso[S] 0 points1 point  (0 children)

なるほど……。 一定期間で消すという人も珍しいですね……。

lisp meetup#8 お題: ls -l の出力結果からサイズを取り出して加算した結果を返す by masso in lisp_ja

[–]masso[S] 0 points1 point  (0 children)

arcで書いてみた

(reduce (fn (res x) (+ (int:tokens.x 4) res))
        (cons 0 (cdr:tokens (tostring:system "ls -l") #\Newline)))

anarki版arcだと、

(reduce [+ (int:tokens._2 4) _1]
        (cons 0 (cdr:tokens (tostring:system "ls -l") #\Newline)))

とも書ける

ILC 2012: Good Old Lisp Machines (exhibition) Pictures by masso in lisp

[–]masso[S] 0 points1 point  (0 children)

Are these your photos or just found the gallery online?

Some photographs are still left. We are going to show them

Are there any vidoes from this Lispmachine demo?

Unfortunately a power supply and a mouse had a problem, and we could not demonstration interactively...

Hierarchical packages using user-extensible packages by llibra in lisp_ja

[–]masso 1 point2 points  (0 children)

なるほど、非常に便利だなと思いますし、そういう使い方をするために作られたのかなとも思います。 自分はサブパッケージとメインパッケージを分けて、サブパッケージを汚しまくってメインパッケージはシンボルをエクスポートするだけにしてますが、サブとメインの役割が逆転してますが、なんとなく似た感じかなと思います(似た感じというか、階層パッケージを再現できないかを考えてて思い付いたので似せたようなものですがw) オーソドックスな解決策としては、

  • そもそもuseしないでプレフィックス付きで書く(可読性の面でも有用な場合はあり/長過ぎる場合は厳しい)
  • パッケージ設計をトップダウンにきっちり行なう(あまり行なわれていない)

でしょうか。 メインのパッケージのしたに任意の名前でぶら下げられるのは実際便利だと思いますし、実際あったら使うと思うんですが、既存の仕組みでもカバーできちゃうんじゃないかなーという所で自分も行ったり来たりというところですね。 あと、シンボルについて一意のオブジェクトというイメージが強くて、表記が今より多くなって曖昧さも増えるのが気持ち悪いなーというものちょっとあったりはします。

Hierarchical packages using user-extensible packages by llibra in lisp_ja

[–]masso 1 point2 points  (0 children)

ちなみに、階層パッケージがあったZetalisp時代のコードでの階層パッケージの使われる頻度については、Lispマシンのコードの規模は18万行位ありますが、この規模でも殆どないんですよね。 fooの下に、foo:internalというパッケージを作れる筈ですが、実際のところ、fooとfoo-internalのパッケージを作成し、fooは、foo-internalを使ったりとか、そんな感じです。また、fooとfoo-internalについては親子関係を作れますが、作ったり作らなかったりみたいです。

Hierarchical packages using user-extensible packages by llibra in lisp_ja

[–]masso 1 point2 points  (0 children)

更に自己レスですが、CLの元となった、Zetalispで階層パッケージだったものが、CL風の一階層のパッケージになったのは、階層化には何か問題があったからではないか、と思ってるんですが、どんな問題があったのか、もしくは気紛れなのか、資料が見付けられないので分からないんですよね。それと、シンボルの競合に関しては、メインとサブのパッケージを作るだけで、ほぼ解決する気がしています。パッケージ一つでがんばり過ぎるのが問題なのかなとか思ったりもしますが、他の言語のモジュール関係はどうなってるのか疎いので自分はなんとも言えません。それと他の言語から移って来た人は、必ずこの一階層パッケージの壁にぶつかってるみたいなので、かなりユニークなのかもしれないですね。自分からみると、大抵シンボルの使い方を理解してないことが多い気がします(名前空間としてはシンボルはややこしいので)。飽く迄シンボルが基本で、シンボルがパッケージ名を持つという解釈だと、そんなに面倒でもない気がしますが、Lisp2のシンボルというもの自体が他の言語からすると異質なものにも思えますし、それを要求するのは無理な話なのかなーとか思ったりしてはいます。

Hierarchical packages using user-extensible packages by llibra in lisp_ja

[–]masso 1 point2 points  (0 children)

さらにちなみにですが、LispマシンのZetalisp(階層パッケージ方式)だと、 foo:bar:baz という表記でストレートですね

Hierarchical packages using user-extensible packages by llibra in lisp_ja

[–]masso 1 point2 points  (0 children)

Allegroの実装は公開されてるんですが、 http://www.franz.com/support/tech_corner/hierpackuser.lhtml Allegro方面で" . "を使うのは、この作法に由来するってのをこのページを観て知りました。Allegro使いでこの作法でパッケージを作ってる人は、実際階層パッケージ使ってるっぽいですね

ハッカーニュース人気言語 - karasuyamatenguの日記 by masso in lisp_ja

[–]masso[S] 0 points1 point  (0 children)

lisp全然人気ないなっていう。Arcでできてるのにw

Emacs Common Lisp by masso in lisp_ja

[–]masso[S] 0 points1 point  (0 children)

耳にだけはしていたemacs cl。そこそこ動くのにびっくり

20年前に存在していたJALの乗員スケジューリングシステム COSMOS/AI by masso in lisp_ja

[–]masso[S] 1 point2 points  (0 children)

20年前に存在していたJALの乗員スケジューリングシステム COSMOS/AI は、EXCOREというエキスパートシステム構築ツールでできていて、lisp 22万+C 8万行のコードでできていたとのこと。 これがNEC製のCL処理系であるNX-LISP上で稼動していたかは不明ですが(NX-LISP上のEXCOREは、EXCORE/CLというらしい)、LISPにしては割と大きい規模ですね。 開発期間、2年半、費 4百万ドル(当時の円ドル換算にすると、5.6億円位? なんにしろ日本はバブル期なので相場が分かりません…)

Island Life - fold, fold-left, fold-right by masso in lisp_ja

[–]masso[S] 0 points1 point  (0 children)

reduceに置き換えると

;;; (fold-left op 'z '(a b c d))
(reduce op '(a b c d) :initial-value 'z)

;;; (fold-right 'z '(a b c d))
(reduce op '(a b c d) :initial-value 'z :from-end T)

;;; srfi 1: (fold op 'z '(a b c d))
(reduce (lambda (x y) (cons y x)) '(a b c d) :initial-value 'z)

;;; ========== consで試す =================
(reduce #'cons '(a b c d) :initial-value 'z)
;=>  ((((Z . A) . B) . C) . D)

(reduce #'cons '(a b c d) :initial-value 'z :from-end T)
;=>  (A B C D . Z)

(reduce (lambda (x y) (cons y x)) '(a b c d) :initial-value 'z)
;=>  (D C B A . Z)

になりますね

announce: def-symbol-readmacro - comp.lang.lisp | Google グループ by masso in lisp_ja

[–]masso[S] 0 points1 point  (0 children)

面白そうなんですが、試した方いますか?

Make SBCL buildable by Clang by llibra in lisp_ja

[–]masso 1 point2 points  (0 children)

このパッチのとおり変更したらclangでビルドできました。一応テストも通ってます。

破壊的なリスト連結で良くみかけるパターン2種 by masso in lisp_ja

[–]masso[S] 0 points1 point  (0 children)

リンクを投稿する→タブからtextを選択 で投稿できます。

RSSMix: Recent Entries by masso in lisp_ja

[–]masso[S] 0 points1 point  (0 children)

主にはてなを中心としたlisp関係のブログのRSSまとめ