LISPって実際どうなの...
- 1 :デフォルトの名無しさん:2015/12/26(土) 21:08:22.74 ID:4MtdCfLl.net
- ポールグレアムがLISPをメッチャ推してるから今独学でやってるんだけど、やってる人が少ないからか参考書も少ないし正直javaとかのほうがいいんじゃないかと悩んでるんだが実際どうなん...
- 2 :デフォルトの名無しさん:2015/12/26(土) 21:09:49.13 ID:4MtdCfLl.net
- ちなみに俺がやってるのはコモンリスプね
プログラミング初心者です
- 3 :uy ◆Qawu9.2l1E :2015/12/26(土) 22:17:06.90 ID:+a1jqNI7.net
- だから初心者がLispやるなっつってんだろハゲ
お前大学いったら間違いなく意識高い系になるよ
- 4 :デフォルトの名無しさん:2015/12/26(土) 22:33:23.18 ID:OHaQL3vX.net
- プログラミングを通して何がやりたいか分からんと何とも言えん
少なくともLispはWindowsアプリケーション作成には向いてない
- 5 :デフォルトの名無しさん:2015/12/26(土) 23:44:25.82 ID:Y4e54cbe.net
- 大学時代ガッツリやったけど、今は再帰処理が必要なロジックを
考えるのに役に立っているぐらいかな。
- 6 :uy ◆Qawu9.2l1E :2015/12/27(日) 00:37:00.05 ID:+oSfCQms.net
- それはきっと役に立ってないんだと思う
- 7 :デフォルトの名無しさん:2015/12/27(日) 00:46:34.22 ID:eRQ2YNIt.net
- >>3
もう大学生なんだよなぁ
- 8 :デフォルトの名無しさん:2015/12/27(日) 11:20:58.38 ID:nlFV9EHx.net
- 下手にアルゴリズムに凝るより、
コンピュータの高速化大容量化生かして力業の方が効率良い場合も。
- 9 :デフォルトの名無しさん:2015/12/27(日) 11:34:47.06 ID:hhr5Quu2.net
- >>8
あざすm(_ _)m
- 10 :デフォルトの名無しさん:2015/12/27(日) 11:53:00.15 ID:Zmrinoji.net
- Common Lispから始めるならOn Lispって本がお勧め。
難易度は高いけど、必要なことやCommon Lispで出来ることが沢山書かれてる。
より高度なことを知りたいならLet Over Lambdaって本を次に読むべき。
- 11 :デフォルトの名無しさん:2015/12/27(日) 11:55:35.87 ID:Zmrinoji.net
- Yahoo! Storeの元になったVia webの作者の一人は、JavaよりScheme(Lispの一種)の方が簡単だって言ってる。
Schemeで雰囲気を掴んでからCommon Lispに入るのも悪くないかも。
http://local.joelonsoftware.com/wiki/Java%E3%82%B9%E3%82%AF%E3%83%BC%E3%83%AB%E3%81%AE%E5%8D%B1%E9%99%BA
「教育言語のSchemeはとてもシンプルで、この言語を頭のいい学生に教えるのには10分くらいしかかからない。」
- 12 :デフォルトの名無しさん:2015/12/27(日) 12:01:00.44 ID:hhr5Quu2.net
- >>10
聞きたいんだけど、lispでインターネットからサイトのデータを集めてくるエージェントを作ったりとかってできるの?
webクローラーっていうのか?
リスプの参考書見てても何ができるのかいまいちわからない事が多くて、それで迷いが生じてしまう
あとon lispは一応家にある まだ読んでないけども
- 13 :デフォルトの名無しさん:2015/12/27(日) 12:02:10.67 ID:hhr5Quu2.net
- >>11
なるほどなぁ
俺も、普通のプログラミング言語よりリスプのほうが思った通りにプログラミングするのが簡単なように初心者ながら思うんだ
でも、リスプでできる事がいまいちわからないから悩んでる
- 14 :デフォルトの名無しさん:2015/12/27(日) 12:02:57.62 ID:hhr5Quu2.net
- ちなみにLISPでGUIプログラミングって出来るの?
- 15 :デフォルトの名無しさん:2015/12/27(日) 12:03:51.84 ID:hhr5Quu2.net
- 俺的には、プログラミングの簡単さ<できることの多さが重要なんだけど
悩むなあ
- 16 :デフォルトの名無しさん:2015/12/27(日) 12:18:15.80 ID:4UF28mhH.net
- >>12
できる。
Common Lispでもできるが、ClojureだとHtmlCleanerみたいなJavaライブラリを混ぜて使えるからすぐに実用に耐えるプログラムが書ける。
- 17 :デフォルトの名無しさん:2015/12/27(日) 12:26:22.09 ID:BwztOoZh.net
- >>14
http://ja.stackoverflow.com/questions/9991/common-lisp-で-macとwindowsで共通してつかえる-guiといえばなんでしょうか
- 18 :デフォルトの名無しさん:2015/12/27(日) 12:30:06.27 ID:BwztOoZh.net
- >>12
lispてのは(プログラミング)言語であって
OS環境やネット環境へのアクセスは手法
その手法がlisp言語にライブラリ、または他の方法で実装されてるかで使用できるかが決まる
- 19 :デフォルトの名無しさん:2015/12/27(日) 12:36:09.77 ID:hhr5Quu2.net
- >>16
javaライブラリを混ぜるってのは、リスプのコードにjavaのコードを混ぜるってこと?
- 20 :デフォルトの名無しさん:2015/12/27(日) 12:36:50.06 ID:hhr5Quu2.net
- >>17
ありがとう!
こういうのがあるのか
- 21 :デフォルトの名無しさん:2015/12/27(日) 12:37:42.99 ID:hhr5Quu2.net
- >>18
へえ〜...
それで、LISP言語にはそれが実装されているんでしょうか...?
- 22 :デフォルトの名無しさん:2015/12/27(日) 12:47:15.76 ID:Zmrinoji.net
- >>21
ggrks
GTK+とかTkとかをバインドした奴があるらしいよ
- 23 :デフォルトの名無しさん:2015/12/27(日) 13:16:47.99 ID:BwztOoZh.net
- http://d.hatena.ne.jp/masatoi/touch/20110818/1313737503
- 24 :デフォルトの名無しさん:2015/12/27(日) 13:17:21.58 ID:4UF28mhH.net
- >>19
http://clojure.org/java_interop
- 25 :デフォルトの名無しさん:2015/12/27(日) 13:44:54.05 ID:hhr5Quu2.net
- >>18
へえ〜...
それで、LISP言語にはそれが実装されているんでしょうか...?
- 26 :デフォルトの名無しさん:2015/12/27(日) 22:43:07.18 ID:W/VOfYcN.net
- とりあえずハノイの塔解いたら満足
- 27 :デフォルトの名無しさん:2015/12/27(日) 23:37:29.84 ID:4UF28mhH.net
- >>25
意味がわかんないからちゃんと質問まとめて
- 28 :uy ◆Qawu9.2l1E :2015/12/28(月) 02:49:48.96 ID:+FktpjIo.net
- 情報収集能力ない奴はプログラミング向いてないからさっさと死ぬべき
あまりにガキっぽいから中高生かと思ったら大学生とか、
こういう頭の成長が遅れてる奴はいくら頑張っても技術が身につかないから
- 29 :uy ◆Qawu9.2l1E :2015/12/28(月) 02:52:27.56 ID:7qtNlkA2.net
- センス無いです
- 30 :uy ◆Qawu9.2l1E :2015/12/28(月) 13:47:16.99 ID:+FktpjIo.net
- >>1死ね
- 31 :デフォルトの名無しさん:2015/12/29(火) 18:04:47.94 ID:HrkcQ9Jo.net
- 実用CommonLisp か Land of Lisp とか初心者でも読める本
Clojure って選択肢もいいけど
マクロ極めるならどちらにしろOn Lisp とか読まないといけないけど
- 32 :uy ◆Qawu9.2l1E :2015/12/29(火) 20:42:32.46 ID:4RcqbWns.net
- let over lambdaを読んでオブジェクト指向以外のアプローチに感付けるかどうかがすべて
- 33 :デフォルトの名無しさん:2016/01/07(木) 10:19:11.24 ID:/bQpWCSz1
- Javaにも関数型パラダイムが入ったので、関数型言語を学んで損はない。
ただ、Lispの心臓部はマクロだから、その辺はどーだろね。
- 34 :デフォルトの名無しさん:2016/01/08(金) 18:54:09.90 ID:fPOFwbHv.net
- lispを学生のうちに勉強するのはおすすめする。
なにより文法が簡単だし、実務でc とかjavaだったりしてもアルゴリズムの発想の枠が広がるからね。
jsicpで検索してみて...
mitの教科書が無料であるよ。
- 35 :デフォルトの名無しさん:2016/01/10(日) 14:50:21.72 ID:P3AH4KNx.net
- 当然、ぽまいらemacsは使ってんだろうな?
- 36 :uy ◆Qawu9.2l1E :2016/01/13(水) 15:05:25.08 ID:BhNL6rQk.net
- 現状はatom一強
- 37 :デフォルトの名無しさん:2016/01/17(日) 15:39:07.60 ID:LBaM8j14.net
- そこでvimですよ
- 38 :デフォルトの名無しさん:2016/01/17(日) 15:42:40.68 ID:mCSRON/4.net
- LISPerがvimとかどうかしてる
- 39 :デフォルトの名無しさん:2016/01/17(日) 15:50:35.05 ID:LBaM8j14.net
- LisperがEmacs Lisp使ってます宣言するのよりマシかと
vim scriptがクズいのはさておき
- 40 :デフォルトの名無しさん:2016/01/17(日) 16:58:26.82 ID:8TKcXYcp.net
- >>36
いい紹介ページはないですか?探した範囲ではいまいちだ
- 41 :デフォルトの名無しさん:2016/01/17(日) 21:42:59.62 ID:hHJZmeSL.net
- ポールグレアムはvi
http://www.paulgraham.com/pfaq.html
- 42 :デフォルトの名無しさん:2016/01/18(月) 17:01:21.13 ID:xQ1VQHB9.net
- emacsは創造者
viは編集者
そんなイメージがある
- 43 :デフォルトの名無しさん:2016/01/19(火) 00:02:16.29 ID:Xdnj5x+8.net
- 今更emacs viとかやってるこのスレは駄目だと思う
特にemacsの存在はほんと残念だわ
RMS早く死なねーかなー
- 44 :デフォルトの名無しさん:2016/01/19(火) 02:26:29.46 ID:Rp3W1lHF.net
- それはRMSが死んでもどうもならんのでは
- 45 :デフォルトの名無しさん:2016/01/19(火) 09:56:09.71 ID:P1UEcZh1.net
- Emacs捨てたくなるようなものを開発すればいい
- 46 :デフォルトの名無しさん:2016/01/19(火) 23:55:59.75 ID:Xdnj5x+8.net
- Eclipseがそうだったのかな・・・
RMS界隈はほんど残念だわ
- 47 :デフォルトの名無しさん:2016/01/20(水) 00:49:37.69 ID:2qzza1/M.net
- >>46
おまえに関係ない
自分も使いたいもの使ってくれ
- 48 :デフォルトの名無しさん:2016/01/22(金) 21:42:00.59 ID:uxMuX/y7.net
- 一ヶ月前に Lisp に目覚めました。
Haskell や O'Caml があるのだから、いまさら Lisp に手を出すべきではないと思って
いました。
でも Emacs Lisp を書く必要に迫られました。とりあえず「((Pythonで)書く (Lisp)イ
ンタプリタ);;http://www.aoky.net/articles/peter_norvig/lispy.htm」が面白そうだ
と読み始めました。引き込まれました。三時間で一気に読みました。久しぶりにコン
ピュータ関連の論文で感動しました。
Lisp の関数 S 式は λ 関数そのものだと分かりました。Lisp の実装が如何に簡単にで
きるかを理解できました。
未だに Lisp が大学で教えられ、天才的な頭脳の方たちが Lisp を賞賛し続けているの
は、実際に動く λ 関数を簡単に実装できることにあると思います。
- 49 :デフォルトの名無しさん:2016/01/22(金) 21:42:26.66 ID:uxMuX/y7.net
- しかし一ヶ月と少したった今、Lisp は関数プログラミングの明晰性を犠牲にしていると
考え出しています。Python のほうが、より明晰な関数プログラミング・スタイルで書け
ると考え始めました。
Emacs Lisp も簡単なものならば書けるようになってきました。でも階層構造さえ無しで
多数のグローバル変数を憶えなければならないのは古臭い言語だと感じます。
Lisp のを高機能にできる秘密はマクロにあるのだろうと思い出しました。自己書き換え
プログラムさえ書け、新たな構文を作り出せてしまうのですから。でも、このような
lisp macro は人智で制御できない領域に簡単に踏み込んでしまう地雷でもあります。こ
んな lisp macro に依存している lisp と そのライブラリには近づかないほうが良いと
考え出しています。
普通のプログラムを書くのならば Python の方が、関数プログラムなら Haskell のほう
がマシだと考え始めています。私の推測は誤っているでしょうか?
- 50 :デフォルトの名無しさん:2016/01/22(金) 22:11:11.89 ID:d8M8QDrI.net
- このスレには近づかないほうが良いな
- 51 :デフォルトの名無しさん:2016/01/23(土) 03:02:36.02 ID:FFMD2tda.net
- 自己書き換えプログラムってどういう意味で使ってるの?
人智で制御出来ないって何を怖がってるの?
なんか叙情的っていうか論理的じゃない文章
- 52 :デフォルトの名無しさん:2016/01/24(日) 23:54:11.89 ID:YlUheVzc.net
- >>51
Lispを齧り初めて、全能感を感じた奴が大抵陥る熱病みたいなもん。
- 53 :デフォルトの名無しさん:2016/01/25(月) 15:44:16.15 ID:u5H64Vmc.net
- emacsでlispを書くのはparedit-modeが便利という一点
- 54 :デフォルトの名無しさん:2016/01/30(土) 03:18:52.28 ID:/yL7/idn.net
- >>1
ブレブレミーハータイプ
結局なにも身に付かない
- 55 :デフォルトの名無しさん:2016/01/31(日) 10:12:41.19 ID:2lMtsceY.net
- LISPerねぇ…
- 56 :デフォルトの名無しさん:2016/01/31(日) 14:32:16.34 ID:nkqZ2rBB.net
- 多い日も安心
- 57 :デフォルトの名無しさん:2016/01/31(日) 22:43:58.95 ID:qEntIMIg.net
- 阿澄佳奈
- 58 :デフォルトの名無しさん:2016/02/01(月) 10:44:44.88 ID:ZwVHcnBv.net
- すぐには役に立たないが後で振り返ってみるとやっててよかった、になると思う>>LISP
武道でいう「型」みたいなノリだな
- 59 :デフォルトの名無しさん:2016/02/05(金) 07:59:27.38 ID:6t6ADPrg.net
- 武道もLISPも知らないくせにその例えはどうかとw
- 60 :電波いっぱい:2016/02/09(火) 22:07:38.84 ID:jMsR+HI1.net
- >>49
ここでの LISP というのはCommon Lisp(CL)のことだと思われるので、そうだとして話をする。
CLはマルチパラダイム言語なので、CLの情報を探して関数型言語の勉強をするのには向かない。ほとんど手続き型の書き方をしているものもあるし、関数型らしく書いたのもあるし、DSLバリバリで宣言的に書いたのもある。
本当に自由なので、書きたいように書ける反面、どのように書きたいかわからない人にはどう書いたらいいかわからない。
エコシステムもあまり整備されているとは言えないから、実用的な物を作ろうとしても、なかなか情報に出会えない。
一通りいろいろなパラダイムに触れてどこかでで行き詰まりを感じたら戻ってみるといいことあるかもね。
- 61 :デフォルトの名無しさん:2016/02/09(火) 23:19:41.89 ID:wLcnim+T.net
- >>60
LISP系言語で関数プログラミングをやりたいのならSchemeを使うのが良い
- 62 :デフォルトの名無しさん:2016/02/26(金) 18:46:24.51 ID:AKtOFowY.net
- なんかこのスレはてなブックマーク臭くてキモい
- 63 :デフォルトの名無しさん:2016/03/31(木) 21:46:31.24 ID:ITnJ0pB2.net
- Common Lispで何か作りたいなら,
まず適当な軽めの入門書をやった後,最近でたApressのCommon Lisp Recipesをリファレンスにするのがいいと思ふ.
GUIとかWEBとか,ライブラリの使い方もだいたい書いてある.
- 64 :デフォルトの名無しさん:2016/04/02(土) 05:23:42.67 ID:HVYESdUP.net
- 武道もLISPも知らないが阿澄佳奈は知ってる
- 65 :デフォルトの名無しさん:2016/05/01(日) 16:08:10.24 ID:tKi6j9CT.net
- 匿名通信(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
- 66 :デフォルトの名無しさん:2016/05/04(水) 14:47:47.35 ID:70a3g/qK.net
- Lispのmacroは凄いのかもしれないが
それを使う場面ってそんなにない
そのため他の言語を使うのが正解
- 67 :デフォルトの名無しさん:2016/12/22(木) 19:17:47.24 ID:E6IX4Vbz.net
- わからないけど間違ってる!
こうですね
- 68 :デフォルトの名無しさん:2016/12/27(火) 19:58:38.72 ID:tyJ7Gcdt.net
- RustとかJuliaとか、最近マクロ流行ってきてるよね
- 69 :デフォルトの名無しさん:2017/01/02(月) 17:04:19.70 ID:h7hZD8W/.net
- 今後どんな言語が現れようが、真のマクロはLispにしかないし
真のマクロを持っているならそれはLispなのです
- 70 :デフォルトの名無しさん:2017/01/02(月) 18:28:47.86 ID:1m/cK6rN.net
- それって
構文木を直接いじれる言語は全て lisp ですって言ってるようなもんだけど
いいのかね。
- 71 :デフォルトの名無しさん:2017/01/02(月) 19:26:42.79 ID:h7hZD8W/.net
- もちろんです
- 72 :デフォルトの名無しさん:2017/01/03(火) 16:37:36.59 ID:bj+lJcSh.net
- S式の良いところに編集のやり安さがあると思う
pareditみたいな感覚でソースコードいじるには、カッコがどうしても必要
- 73 :デフォルトの名無しさん:2017/01/04(水) 10:14:19.12 ID:Fdq9YuTD.net
- >>72
forthみたいに後置にすれば括弧無くてもなんとかなるよ。
- 74 :デフォルトの名無しさん:2017/01/04(水) 11:16:26.87 ID:0ISnzSv/.net
- LISP
(+ 1 2 3 4 5)
FORTH
1 2 3 4 5 + + + +
LISPは括弧を数えるのが面倒
FORTHは演算子を数えるのが面倒
もっとも上のLISPの書き方はプリミティブでない実装の場合があるから
FORTHでも楽になる構文糖衣があるのかもしれないけど
- 75 :デフォルトの名無しさん:2017/01/04(水) 11:22:27.50 ID:ws9aPhGs.net
- >>1
自分でemacs入れて試してみればええやん
なんなん?
- 76 :デフォルトの名無しさん:2017/01/05(木) 14:37:26.40 ID:IoFQoH8y.net
- FORTHのコンパイラいじれる感じはマクロに近いものを感じる
後置や前置で騒がれるけど触ってみるとおかしいのはそこじゃない、という点でFORTHとLISPは似ている
- 77 :デフォルトの名無しさん:2017/06/22(木) 20:42:33.50 ID:uZsOvB/x.net
- LISPを学ぶ最善の方法、
それはCのようなGC機能の無い言語で、
GC付きのLISPを実装して見ることだな。
- 78 :デフォルトの名無しさん:2018/02/20(火) 01:45:30.62 ID:KbMgozGm.net
- それはLISPじゃなくて処理系実装の勉強方法だろ
LISPはもっと手軽に使えるものだと思うよ
- 79 :デフォルトの名無しさん:2018/05/23(水) 22:12:02.57 ID:Au5e7VGg.net
- 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
6G48C
- 80 :デフォルトの名無しさん:2018/07/04(水) 23:51:51.51 ID:gFgZc5FG.net
- IHV
- 81 :デフォルトの名無しさん:2018/09/09(日) 01:03:49.61 ID:UehpSxem.net
- 今からLisp始めるってどうなの?
- 82 :デフォルトの名無しさん:2018/09/09(日) 01:17:52.73 ID:b63/Vgkc.net
- >>81
それは筋が悪い
- 83 :デフォルトの名無しさん:2018/09/09(日) 03:45:24.01 ID:NnO4PjJt.net
- >>77,>>78
Lispプログラミングの基本を学ぶには、Lispの適当なサブセットを決めて、そのサブセットのインタープリターをLisp自身で書くことだね
Lispのプログラムはリストの形をしているので、Cなど他の言語のように構文解析や字句解析で悩む必要はない
だからリストを処理するプログラムとしてインタープリターを書くことになるので、Lispプログラミングで最も重要なリスト処理の基本を学べることになる
まあ別にLispのインタープリターでなくてもリストによって表現された抽象構文木を扱うプログラムならば入門としては良い課題だと思うけどね
- 84 :デフォルトの名無しさん:2018/09/09(日) 07:46:24.48 ID:N103mDOh.net
- >>83
マシンとしてはどこまで持ち上げ(lift)した?
- 85 :デフォルトの名無しさん:2018/09/11(火) 22:00:19.84 ID:cGLFa+nx.net
- >>81
まずはelispから
- 86 :デフォルトの名無しさん:2018/12/03(月) 18:23:20.15 ID:5b9Emnvx.net
- それは筋が悪い
- 87 :デフォルトの名無しさん:2018/12/04(火) 01:44:56.40 ID:ZSkJl4U8.net
- >>36
コイツ今息してんのかな?www
- 88 :デフォルトの名無しさん:2018/12/04(火) 08:05:30.38 ID:XwTNxyUO.net
- LISPなのLispなの、どっちなの
- 89 :デフォルトの名無しさん:2018/12/08(土) 12:27:02.72 ID:KVgBfK85.net
- ここ1、2年でLISP関連の書き込みはめっきり減ったな
はちみつしかいないよ
- 90 :デフォルトの名無しさん:2018/12/08(土) 16:59:17.62 ID:ag0JcdkU.net
- >>88
> LISPなのLispなの、どっちなの
まあ好きに使えば良いので決まりはない
常識的に言えば、現在はLisp
全部大文字のLISPは昔のLispのイメージだね
というのも1970年代はプリンタで小文字が出せないのは普通だったからアルファベットは大文字のみ
なので言語名も大文字と数字や限られた特殊記号のみ
というわけで、古くからある言語の当時のバージョン(例えば LISP 1.5 とか FORTRAN 77 とか)を強調したいとか「昔感」を強調したい場合は
全部大文字の言語名、LISP, FORTRAN, COBOL, ALGOL を使えば良い
そうでない場合(や当時のバージョンということを強調する意図がない場合)には、現代式の小文字を使った
Lisp, Fortran, Cobol 等を使えば良い
- 91 :デフォルトの名無しさん:2018/12/16(日) 17:09:53.21 ID:lVg1cTYK.net
- >>90
なるほど〜!
すごく勉強になりました。
ご回答ありがとうございます!
- 92 :デフォルトの名無しさん:2019/11/23(土) 04:46:01 ID:l4WHmfnE.net
- 並列化はどうなっているの?OpenMPとかのディレクティブをつかうの?
プロセス並列化はMPI?
- 93 :デフォルトの名無しさん:2020/11/24(火) 15:18:15.99 ID:nO0Ar+PL.net
- はい
- 94 :(u_・y) :2020/11/24(火) 15:45:26.70 ID:gfNKbZsO.net
- >>90
(u_・y)えっほんとに?
(u_・y)適当な事言ってない?
(u_・y)ジョンマッカーシーさんがミックストケースで書いた事はある?
(u_・y)ソース持ってきて?
- 95 :(u_・y) :2020/11/24(火) 15:55:54.53 ID:gfNKbZsO.net
- (u_・y)>>87 uyという概念は常に宇宙とともに存在する
(u_・y)>87 お前がどこで何をしているか手にとるように分かるぞ
(u_・y)>87 「www」とあえて3つのダブリューを書いたのは
(u_・y)>87 自己承認欲求の現れだ
(u_・y)>>87 「w」これは自己肯定をしたい者
(u_・y)>87 「ww」これは1人の親しい友に認められたい者
(u_・y)>87 「www」これは2人以上の多くの人間に認められたい者
(u_・y)>87 お前は今、uyという仮想空間上の共通敵を叩く事により、大勢からの承認を得たいと考えている者だ
(u_・y)>>87 w
(u_・y)>>87 現実世界で得られない承認を・・・ネットで満たそうとしてるんだな・・・
- 96 :デフォルトの名無しさん:2020/11/25(水) 17:29:16.86 ID:NHQccPME.net
- >>95
とりあえずこのスレ盛り上げて
- 97 :デフォルトの名無しさん:2021/01/15(金) 13:03:49.25 ID:XkGM5v4E.net
- 使えるようになるのは修羅の道だけどとりあえず入門コースやるのはマトモなプログラマの必修科目
- 98 :デフォルトの名無しさん:2021/09/04(土) 14:56:17.80 ID:DQYaENlA.net
- >>49
> Emacs Lisp も簡単なものならば書けるようになってきました。でも階層構造さえ無しで
> 多数のグローバル変数を憶えなければならないのは古臭い言語だと感じます。
超亀レスだが
elispは動的束縛なのでletで同名変数を宣言すれば大域変数は隠され影響範囲が限定され
キーボード割り込みで大域脱出した時もunwind-protectで元に戻す必要はない
というUI記述言語として極めて良好な性質を持ってる
- 99 :デフォルトの名無しさん:2021/09/04(土) 17:04:32.79 ID:Q9qQqykt.net
- >>98
それは動的束縛とは関係無い
defvarで定義された変数はスペシャル変数といって、letで束縛するとそういう挙動になるというだけだ
setqで(無理矢理)定義したグローバル変数はそうならない
ちなみに今のelispは静的束縛が実装されて、全てそれを使うようになっている
ただ、互換性を保つためにまだデフォルトにはなってないけど、時間の問題だろう
- 100 :デフォルトの名無しさん:2021/09/04(土) 18:08:18.70 ID:jSSzYM7r.net
- スペシャル変数は動的束縛なんだから関係あるだろ
静的束縛では外から変数を注入するようなことは難しいし
自由変数をつかったら中断時に値を元に戻すにはunwind-protectのような機構が必要だって話
- 101 :デフォルトの名無しさん:2021/09/04(土) 22:48:02.97 ID:uKq8oRZn.net
- >>100
いや違う
スペシャル変数のその挙動は、elispが動的束縛だったときと、静的束縛の時で何も変わってない
要するに、単にそういう機能が実装されてるというだけ
- 102 :デフォルトの名無しさん:2021/09/07(火) 20:48:08.70 ID:8Gi3qZOZ.net
- >>99
> defvarで定義された変数はスペシャル変数といって、letで束縛するとそういう挙動になるというだけだ
> setqで(無理矢理)定義したグローバル変数はそうならない
Elispの話じゃないじゃないか
- 103 :デフォルトの名無しさん:2021/09/08(水) 23:03:47.01 ID:Z7F+3Q5J.net
- おそらく 98 100 は 97 の
「キーボード割り込みで大域脱出した時も…UI記述言語として極めて良好な性質を持ってる」
という内容を解釈することもなくletで束縛した変数のシャドウイングについてはスペシャルでもレキシカルでも挙動に変化はないと言いたいのだろう
大域脱出やunwind-protectの話をしているのであさっての主張なんだが
何がどう関係ないのか次はコードで例示してくれ
- 104 :デフォルトの名無しさん:2021/09/09(木) 23:10:01.54 ID:ByNHohVX.net
- >>98
elispはバッファーローカル変数も興味深い
スレッドローカル変数と意味論的にも近く
マルチバッファーセーフ←→マルチスレッドセーフ
という対比ができる
凄くシンプルな設計と実装で上手くこなしてる
standard-outputやnilストリームの使い方も上手い
- 105 :デフォルトの名無しさん:2021/09/10(金) 16:13:07.64 ID:y2IogSqT.net
- --- 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)
--------------------------------
続く
- 106 :デフォルトの名無しさん:2021/09/10(金) 16:14:14.79 ID:y2IogSqT.net
- -*- 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で束縛する挙動は静的動的束縛に関係無く同じ挙動だ
それが言いたかっただけ
- 107 :デフォルトの名無しさん:2021/09/10(金) 16:22:31.87 ID:y2IogSqT.net
- >>104
バッファローカル変数は、他の言語で言うインスタンス変数と役割は同じだな
例えば、buffer-file-nameはバッファローカル変数で、バッファ毎に違う値になるけど、
本来ならばbuffer.file-nameのように、作成したインスタンス変数内(この例ではbuffer)に有るべきだけど、
Emacsはオブジェクト指向を採用しなかったので、グローバル変数をバッファー毎に違う値にする為に、苦肉の策と言えなくもない
LispでもCLOSのようなオブジェクト指向を全面的に採用していれば、バッファローカル変数の仕組みは必要無いものだった
- 108 :デフォルトの名無しさん:2021/09/10(金) 16:29:15.85 ID:y2IogSqT.net
- CLOSだと(file-name buffer)で済む所を、elispだと
(with-current-buffer buffer
buffer-file-name)
と書く必要があって、CLOSの方がスマートだと思う
他にもelispのadviceも、CLOSのdefmethodの:before :afterを使えば似たような事ができるだろう(完全に同じじゃないけど)
- 109 :デフォルトの名無しさん:2021/09/11(土) 14:40:21.99 ID:WRGMhX/P.net
- >>108>>109
それじゃbufferがthisのような特殊な識別子になってるだろ
- 110 :デフォルトの名無しさん:2024/01/25(木) 23:01:09.63 ID:GdCzxGB4.net
- 人工知能言語として脚光を浴びた時代もありました
29 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200