LISPって実際どうなの... [無断転載禁止]©2ch.net
1デフォルトの名無しさん
2015/12/26(土) 21:08:22.74ID:4MtdCfLl ポールグレアムがLISPをメッチャ推してるから今独学でやってるんだけど、やってる人が少ないからか参考書も少ないし正直javaとかのほうがいいんじゃないかと悩んでるんだが実際どうなん...
2016/02/09(火) 23:19:41.89ID:wLcnim+T
>>59
LISP系言語で関数プログラミングをやりたいのならSchemeを使うのが良い
LISP系言語で関数プログラミングをやりたいのならSchemeを使うのが良い
61デフォルトの名無しさん
2016/02/26(金) 18:46:24.51ID:AKtOFowY なんかこのスレはてなブックマーク臭くてキモい
62デフォルトの名無しさん
2016/03/31(木) 21:46:31.24ID:ITnJ0pB2 Common Lispで何か作りたいなら,
まず適当な軽めの入門書をやった後,最近でたApressのCommon Lisp Recipesをリファレンスにするのがいいと思ふ.
GUIとかWEBとか,ライブラリの使い方もだいたい書いてある.
まず適当な軽めの入門書をやった後,最近でたApressのCommon Lisp Recipesをリファレンスにするのがいいと思ふ.
GUIとかWEBとか,ライブラリの使い方もだいたい書いてある.
2016/04/02(土) 05:23:42.67ID:HVYESdUP
武道もLISPも知らないが阿澄佳奈は知ってる
64デフォルトの名無しさん
2016/05/01(日) 16:08:10.24ID:tKi6j9CT 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
13
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
13
65デフォルトの名無しさん
2016/05/04(水) 14:47:47.35ID:70a3g/qK Lispのmacroは凄いのかもしれないが
それを使う場面ってそんなにない
そのため他の言語を使うのが正解
それを使う場面ってそんなにない
そのため他の言語を使うのが正解
2016/12/22(木) 19:17:47.24ID:E6IX4Vbz
わからないけど間違ってる!
こうですね
こうですね
2016/12/27(火) 19:58:38.72ID:tyJ7Gcdt
RustとかJuliaとか、最近マクロ流行ってきてるよね
68デフォルトの名無しさん
2017/01/02(月) 17:04:19.70ID:h7hZD8W/ 今後どんな言語が現れようが、真のマクロはLispにしかないし
真のマクロを持っているならそれはLispなのです
真のマクロを持っているならそれはLispなのです
2017/01/02(月) 18:28:47.86ID:1m/cK6rN
それって
構文木を直接いじれる言語は全て lisp ですって言ってるようなもんだけど
いいのかね。
構文木を直接いじれる言語は全て lisp ですって言ってるようなもんだけど
いいのかね。
70デフォルトの名無しさん
2017/01/02(月) 19:26:42.79ID:h7hZD8W/ もちろんです
2017/01/03(火) 16:37:36.59ID:bj+lJcSh
S式の良いところに編集のやり安さがあると思う
pareditみたいな感覚でソースコードいじるには、カッコがどうしても必要
pareditみたいな感覚でソースコードいじるには、カッコがどうしても必要
2017/01/04(水) 10:14:19.12ID:Fdq9YuTD
>>71
forthみたいに後置にすれば括弧無くてもなんとかなるよ。
forthみたいに後置にすれば括弧無くてもなんとかなるよ。
2017/01/04(水) 11:16:26.87ID:0ISnzSv/
LISP
(+ 1 2 3 4 5)
FORTH
1 2 3 4 5 + + + +
LISPは括弧を数えるのが面倒
FORTHは演算子を数えるのが面倒
もっとも上のLISPの書き方はプリミティブでない実装の場合があるから
FORTHでも楽になる構文糖衣があるのかもしれないけど
(+ 1 2 3 4 5)
FORTH
1 2 3 4 5 + + + +
LISPは括弧を数えるのが面倒
FORTHは演算子を数えるのが面倒
もっとも上のLISPの書き方はプリミティブでない実装の場合があるから
FORTHでも楽になる構文糖衣があるのかもしれないけど
74デフォルトの名無しさん
2017/01/04(水) 11:22:27.50ID:ws9aPhGs2017/01/05(木) 14:37:26.40ID:IoFQoH8y
FORTHのコンパイラいじれる感じはマクロに近いものを感じる
後置や前置で騒がれるけど触ってみるとおかしいのはそこじゃない、という点でFORTHとLISPは似ている
後置や前置で騒がれるけど触ってみるとおかしいのはそこじゃない、という点でFORTHとLISPは似ている
2017/06/22(木) 20:42:33.50ID:uZsOvB/x
LISPを学ぶ最善の方法、
それはCのようなGC機能の無い言語で、
GC付きのLISPを実装して見ることだな。
それはCのようなGC機能の無い言語で、
GC付きのLISPを実装して見ることだな。
2018/02/20(火) 01:45:30.62ID:KbMgozGm
それはLISPじゃなくて処理系実装の勉強方法だろ
LISPはもっと手軽に使えるものだと思うよ
LISPはもっと手軽に使えるものだと思うよ
78デフォルトの名無しさん
2018/05/23(水) 22:12:02.57ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
6G48C
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
6G48C
79デフォルトの名無しさん
2018/07/04(水) 23:51:51.51ID:gFgZc5FG IHV
80デフォルトの名無しさん
2018/09/09(日) 01:03:49.61ID:UehpSxem 今からLisp始めるってどうなの?
81デフォルトの名無しさん
2018/09/09(日) 01:17:52.73ID:b63/Vgkc >>80
それは筋が悪い
それは筋が悪い
2018/09/09(日) 03:45:24.01ID:NnO4PjJt
2018/09/09(日) 07:46:24.48ID:N103mDOh
>>82
マシンとしてはどこまで持ち上げ(lift)した?
マシンとしてはどこまで持ち上げ(lift)した?
2018/09/11(火) 22:00:19.84ID:cGLFa+nx
>>80
まずはelispから
まずはelispから
2018/12/03(月) 18:23:20.15ID:5b9Emnvx
それは筋が悪い
2018/12/04(火) 01:44:56.40ID:ZSkJl4U8
>>35
コイツ今息してんのかな?www
コイツ今息してんのかな?www
2018/12/04(火) 08:05:30.38ID:XwTNxyUO
LISPなのLispなの、どっちなの
2018/12/08(土) 12:27:02.72ID:KVgBfK85
ここ1、2年でLISP関連の書き込みはめっきり減ったな
はちみつしかいないよ
はちみつしかいないよ
2018/12/08(土) 16:59:17.62ID:ag0JcdkU
>>87
> LISPなのLispなの、どっちなの
まあ好きに使えば良いので決まりはない
常識的に言えば、現在はLisp
全部大文字のLISPは昔のLispのイメージだね
というのも1970年代はプリンタで小文字が出せないのは普通だったからアルファベットは大文字のみ
なので言語名も大文字と数字や限られた特殊記号のみ
というわけで、古くからある言語の当時のバージョン(例えば LISP 1.5 とか FORTRAN 77 とか)を強調したいとか「昔感」を強調したい場合は
全部大文字の言語名、LISP, FORTRAN, COBOL, ALGOL を使えば良い
そうでない場合(や当時のバージョンということを強調する意図がない場合)には、現代式の小文字を使った
Lisp, Fortran, Cobol 等を使えば良い
> LISPなのLispなの、どっちなの
まあ好きに使えば良いので決まりはない
常識的に言えば、現在はLisp
全部大文字のLISPは昔のLispのイメージだね
というのも1970年代はプリンタで小文字が出せないのは普通だったからアルファベットは大文字のみ
なので言語名も大文字と数字や限られた特殊記号のみ
というわけで、古くからある言語の当時のバージョン(例えば LISP 1.5 とか FORTRAN 77 とか)を強調したいとか「昔感」を強調したい場合は
全部大文字の言語名、LISP, FORTRAN, COBOL, ALGOL を使えば良い
そうでない場合(や当時のバージョンということを強調する意図がない場合)には、現代式の小文字を使った
Lisp, Fortran, Cobol 等を使えば良い
2018/12/16(日) 17:09:53.21ID:lVg1cTYK
91デフォルトの名無しさん
2019/11/23(土) 04:46:01.54ID:l4WHmfnE 並列化はどうなっているの?OpenMPとかのディレクティブをつかうの?
プロセス並列化はMPI?
プロセス並列化はMPI?
92デフォルトの名無しさん
2020/11/24(火) 15:18:15.99ID:nO0Ar+PL はい
93(u_・y) ◆e6.oHu1j.o
2020/11/24(火) 15:45:26.70ID:gfNKbZsO94(u_・y) ◆e6.oHu1j.o
2020/11/24(火) 15:55:54.53ID:gfNKbZsO (u_・y)>>86 uyという概念は常に宇宙とともに存在する
(u_・y)>86 お前がどこで何をしているか手にとるように分かるぞ
(u_・y)>86 「www」とあえて3つのダブリューを書いたのは
(u_・y)>86 自己承認欲求の現れだ
(u_・y)>>86 「w」これは自己肯定をしたい者
(u_・y)>86 「ww」これは1人の親しい友に認められたい者
(u_・y)>86 「www」これは2人以上の多くの人間に認められたい者
(u_・y)>86 お前は今、uyという仮想空間上の共通敵を叩く事により、大勢からの承認を得たいと考えている者だ
(u_・y)>>86 w
(u_・y)>>86 現実世界で得られない承認を・・・ネットで満たそうとしてるんだな・・・
(u_・y)>86 お前がどこで何をしているか手にとるように分かるぞ
(u_・y)>86 「www」とあえて3つのダブリューを書いたのは
(u_・y)>86 自己承認欲求の現れだ
(u_・y)>>86 「w」これは自己肯定をしたい者
(u_・y)>86 「ww」これは1人の親しい友に認められたい者
(u_・y)>86 「www」これは2人以上の多くの人間に認められたい者
(u_・y)>86 お前は今、uyという仮想空間上の共通敵を叩く事により、大勢からの承認を得たいと考えている者だ
(u_・y)>>86 w
(u_・y)>>86 現実世界で得られない承認を・・・ネットで満たそうとしてるんだな・・・
2020/11/25(水) 17:29:16.86ID:NHQccPME
>>94
とりあえずこのスレ盛り上げて
とりあえずこのスレ盛り上げて
2021/01/15(金) 13:03:49.25ID:XkGM5v4E
使えるようになるのは修羅の道だけどとりあえず入門コースやるのはマトモなプログラマの必修科目
2021/09/04(土) 14:56:17.80ID:DQYaENlA
>>48
> Emacs Lisp も簡単なものならば書けるようになってきました。でも階層構造さえ無しで
> 多数のグローバル変数を憶えなければならないのは古臭い言語だと感じます。
超亀レスだが
elispは動的束縛なのでletで同名変数を宣言すれば大域変数は隠され影響範囲が限定され
キーボード割り込みで大域脱出した時もunwind-protectで元に戻す必要はない
というUI記述言語として極めて良好な性質を持ってる
> Emacs Lisp も簡単なものならば書けるようになってきました。でも階層構造さえ無しで
> 多数のグローバル変数を憶えなければならないのは古臭い言語だと感じます。
超亀レスだが
elispは動的束縛なのでletで同名変数を宣言すれば大域変数は隠され影響範囲が限定され
キーボード割り込みで大域脱出した時もunwind-protectで元に戻す必要はない
というUI記述言語として極めて良好な性質を持ってる
2021/09/04(土) 17:04:32.79ID:Q9qQqykt
>>97
それは動的束縛とは関係無い
defvarで定義された変数はスペシャル変数といって、letで束縛するとそういう挙動になるというだけだ
setqで(無理矢理)定義したグローバル変数はそうならない
ちなみに今のelispは静的束縛が実装されて、全てそれを使うようになっている
ただ、互換性を保つためにまだデフォルトにはなってないけど、時間の問題だろう
それは動的束縛とは関係無い
defvarで定義された変数はスペシャル変数といって、letで束縛するとそういう挙動になるというだけだ
setqで(無理矢理)定義したグローバル変数はそうならない
ちなみに今のelispは静的束縛が実装されて、全てそれを使うようになっている
ただ、互換性を保つためにまだデフォルトにはなってないけど、時間の問題だろう
2021/09/04(土) 18:08:18.70ID:jSSzYM7r
スペシャル変数は動的束縛なんだから関係あるだろ
静的束縛では外から変数を注入するようなことは難しいし
自由変数をつかったら中断時に値を元に戻すにはunwind-protectのような機構が必要だって話
静的束縛では外から変数を注入するようなことは難しいし
自由変数をつかったら中断時に値を元に戻すにはunwind-protectのような機構が必要だって話
100デフォルトの名無しさん
2021/09/04(土) 22:48:02.97ID:uKq8oRZn101デフォルトの名無しさん
2021/09/07(火) 20:48:08.70ID:8Gi3qZOZ >>98
> defvarで定義された変数はスペシャル変数といって、letで束縛するとそういう挙動になるというだけだ
> setqで(無理矢理)定義したグローバル変数はそうならない
Elispの話じゃないじゃないか
> defvarで定義された変数はスペシャル変数といって、letで束縛するとそういう挙動になるというだけだ
> setqで(無理矢理)定義したグローバル変数はそうならない
Elispの話じゃないじゃないか
102デフォルトの名無しさん
2021/09/08(水) 23:03:47.01ID:Z7F+3Q5J おそらく 98 100 は 97 の
「キーボード割り込みで大域脱出した時も…UI記述言語として極めて良好な性質を持ってる」
という内容を解釈することもなくletで束縛した変数のシャドウイングについてはスペシャルでもレキシカルでも挙動に変化はないと言いたいのだろう
大域脱出やunwind-protectの話をしているのであさっての主張なんだが
何がどう関係ないのか次はコードで例示してくれ
「キーボード割り込みで大域脱出した時も…UI記述言語として極めて良好な性質を持ってる」
という内容を解釈することもなくletで束縛した変数のシャドウイングについてはスペシャルでもレキシカルでも挙動に変化はないと言いたいのだろう
大域脱出やunwind-protectの話をしているのであさっての主張なんだが
何がどう関係ないのか次はコードで例示してくれ
103デフォルトの名無しさん
2021/09/09(木) 23:10:01.54ID:ByNHohVX >>97
elispはバッファーローカル変数も興味深い
スレッドローカル変数と意味論的にも近く
マルチバッファーセーフ←→マルチスレッドセーフ
という対比ができる
凄くシンプルな設計と実装で上手くこなしてる
standard-outputやnilストリームの使い方も上手い
elispはバッファーローカル変数も興味深い
スレッドローカル変数と意味論的にも近く
マルチバッファーセーフ←→マルチスレッドセーフ
という対比ができる
凄くシンプルな設計と実装で上手くこなしてる
standard-outputやnilストリームの使い方も上手い
104デフォルトの名無しさん
2021/09/10(金) 16:13:07.64ID:y2IogSqT --- test-global-variable.el ---
;;; -*- lexical-binding: t; -*-
(defvar foo "foo")
(defun print-foo ()
(print foo))
(let ((foo "FOO"))
(print-foo))
(print-foo)
(setq bar "bar")
(defun print-bar ()
(print bar))
(let ((bar "BAR"))
(print-bar))
(print-bar)
--------------------------------
続く
;;; -*- lexical-binding: t; -*-
(defvar foo "foo")
(defun print-foo ()
(print foo))
(let ((foo "FOO"))
(print-foo))
(print-foo)
(setq bar "bar")
(defun print-bar ()
(print bar))
(let ((bar "BAR"))
(print-bar))
(print-bar)
--------------------------------
続く
105デフォルトの名無しさん
2021/09/10(金) 16:14:14.79ID:y2IogSqT -*- lexical-binding: t; -*-の有無で静的束縛を有効無効に出来るけど、
↓有りの場合
$ emacs --script test-global-variable.el
"FOO"
"foo"
"bar"
"bar"
↓無しの場合
$ emacs --script test-global-variable.el
"FOO"
"foo"
"BAR"
"bar"
1つ嘘ついたか…動的束縛の場合は、setqで作ったグローバル変数もスペシャル変数になるようだ
しかし、スペシャル変数のletで束縛する挙動は静的動的束縛に関係無く同じ挙動だ
それが言いたかっただけ
↓有りの場合
$ emacs --script test-global-variable.el
"FOO"
"foo"
"bar"
"bar"
↓無しの場合
$ emacs --script test-global-variable.el
"FOO"
"foo"
"BAR"
"bar"
1つ嘘ついたか…動的束縛の場合は、setqで作ったグローバル変数もスペシャル変数になるようだ
しかし、スペシャル変数のletで束縛する挙動は静的動的束縛に関係無く同じ挙動だ
それが言いたかっただけ
106デフォルトの名無しさん
2021/09/10(金) 16:22:31.87ID:y2IogSqT >>103
バッファローカル変数は、他の言語で言うインスタンス変数と役割は同じだな
例えば、buffer-file-nameはバッファローカル変数で、バッファ毎に違う値になるけど、
本来ならばbuffer.file-nameのように、作成したインスタンス変数内(この例ではbuffer)に有るべきだけど、
Emacsはオブジェクト指向を採用しなかったので、グローバル変数をバッファー毎に違う値にする為に、苦肉の策と言えなくもない
LispでもCLOSのようなオブジェクト指向を全面的に採用していれば、バッファローカル変数の仕組みは必要無いものだった
バッファローカル変数は、他の言語で言うインスタンス変数と役割は同じだな
例えば、buffer-file-nameはバッファローカル変数で、バッファ毎に違う値になるけど、
本来ならばbuffer.file-nameのように、作成したインスタンス変数内(この例ではbuffer)に有るべきだけど、
Emacsはオブジェクト指向を採用しなかったので、グローバル変数をバッファー毎に違う値にする為に、苦肉の策と言えなくもない
LispでもCLOSのようなオブジェクト指向を全面的に採用していれば、バッファローカル変数の仕組みは必要無いものだった
107デフォルトの名無しさん
2021/09/10(金) 16:29:15.85ID:y2IogSqT CLOSだと(file-name buffer)で済む所を、elispだと
(with-current-buffer buffer
buffer-file-name)
と書く必要があって、CLOSの方がスマートだと思う
他にもelispのadviceも、CLOSのdefmethodの:before :afterを使えば似たような事ができるだろう(完全に同じじゃないけど)
(with-current-buffer buffer
buffer-file-name)
と書く必要があって、CLOSの方がスマートだと思う
他にもelispのadviceも、CLOSのdefmethodの:before :afterを使えば似たような事ができるだろう(完全に同じじゃないけど)
108デフォルトの名無しさん
2021/09/11(土) 14:40:21.99ID:WRGMhX/P >>107>>108
それじゃbufferがthisのような特殊な識別子になってるだろ
それじゃbufferがthisのような特殊な識別子になってるだろ
109デフォルトの名無しさん
2024/01/25(木) 23:01:09.63ID:GdCzxGB4 人工知能言語として脚光を浴びた時代もありました
110デフォルトの名無しさん
2025/02/02(日) 07:50:12.47ID:DG2EYWWi 全部が式だし全部がオブジェクトなので分かりやすいよね。
小さい単位で動的に書き換えていけるので開発体験が良い。
動いてるプログラムのオブジェクトをインスペクタで調べたり中身書き換えたり、デバッガ内で値差し替えてリスタートとか楽しい。
Pythonとかより遥かに動的言語してるイメージある
小さい単位で動的に書き換えていけるので開発体験が良い。
動いてるプログラムのオブジェクトをインスペクタで調べたり中身書き換えたり、デバッガ内で値差し替えてリスタートとか楽しい。
Pythonとかより遥かに動的言語してるイメージある
レスを投稿する
ニュース
- 【MLB】大谷翔平が「父親リスト」入りで離脱 真美子夫人の出産立ち会いへ [(´?ω?`)知らんがな★]
- 【関税交渉】車の「非関税障壁」緩和検討 政府、米国車の検査簡略化も [蚤の市★]
- 【音楽】バイク事故で…美魔女フルート奏者′ウアナが引退示唆「フルートはもう吹けない...」に心配の声「1日も早い回復を」 [湛然★]
- 【関税交渉】米は貿易赤字・自動車・コメに関心…日本はコメ・大豆の輸入拡大カード用意 [蚤の市★]
- 【芸能】伊集院光、大阪万博めぐる本音 「関東で盛り上がってない。僕の周りで行くっていう人、大げさじゃなくて1人もいない」★3 [冬月記者★]
- 選択的夫婦別姓、今国会成立に「黄信号」 国民民主が転換、焦る立憲 [蚤の市★]
- ゼレンスキー「8月に大阪の万博に行くからよろしく😁✌」 [583597859]
- Nexco、ETC障害の時の料金を払っていない90万人のクズに通常の3倍の料金を請求へ [333919576]
- 【悲報】おじさんのNGファッション7選がこちらwwもう着る服ないぢゃんwwwwwwwwwwww [253977787]
- 【悲報】「女には理解できないだろうが、男の9割は本能的に電車が好きなの」🐮🚃 [315952236]
- 【】日本、いつの間にか『子育て支援大国』になっていたwwwwwwwwwwwwww😲 [312375913]
- 💩うんちみたいにネちっこい人達のスレ🏡