【入門】Common Lisp その11【質問よろず】
■ このスレッドは過去ログ倉庫に格納されています
Lisp Schemeスレでは恥ずかしくて聞けないようなことを質問したり、 Lisp Schemeスレの話題は高度すぎて気後れする人が話しあったり。 それ以外でもCommon Lispについての話題なら歓迎します。 ま、ゆっくりやりましょう。 「いいものの本質は、いかなる時代においても変わらない」byパワーズ ■前スレ 【入門】Common Lisp その10【質問よろず】 http://peace.2ch.net/test/read.cgi/tech/1361341876/ ■Wiki http://wiki.fdiary.net/lisp/ (id:guest pass:cl) http://cl.cddddr.org/ http://tips.lisp-users.org/common-lisp/ >>280 >>277 のリンク先(HyperSpec)のことなら、ダウンロードはLispWorksのサイトのこのページから。 http://www.lispworks.com/documentation/common-lisp.html "This HTML document may, subject to certain conditions, be downloaded for use at other locations." という段落の "downloaded" が、HyperSpecのHTMLファイル群を固めたTar書庫へのリンク。 ローカルに置いたHyperSpecを「zsh上で pydoc ... 等と同様に」参照できるコマンドは多分無いと思うけど、 EmacsのSLIMEからブラウザで開くことは出来る(シンボルの上で C-c C-d h)。 https://common-lisp.net/project/slime/doc/html/Documentation.html 設定はこんな感じ(展開したHyperSpecディレクトリをホームディレクトリに置いた場合): ;; HyperSpecのディレクトリ(URL形式)。 (setq common-lisp-hyperspec-root (concat "file://" (expand-file-name "~/HyperSpec/"))) ;; HyperSpecを `eww' (Emacs 24.4 以降に内蔵のウェブブラウザ) で開く設定。 ;; (それ以外のURLはデフォルトのブラウザで開く) (setq browse-url-browser-function `((,(concat "^" common-lisp-hyperspec-root) . eww-browse-url) ("." . browse-url-default-browser))) >>281 なるほど ありがとう これでもう大丈夫になりました localリファレンス用のzshコマンドのために書いた #!/usr/bin/env python3 import urllib.request import re import os import subprocess import sys # USAGE: this-script.py or this-script.py [Symbol] ref_dir = os.environ["HOME"] + "/lib/HyperSpec/" ref_top_dir = ref_dir + "/Front/X_AllSym.htm" if len(sys.argv) == 1: to_Symbol_list = "w3m " + ref_top_dir subprocess.call(to_Symbol_list, shell=True) elif len(sys.argv) == 2: top_as_html = "file://" + ref_top_dir with urllib.request.urlopen(top_as_html) as res: html = res.read() is_Symbol = 'Body/.+?#' + sys.argv[1] + '"' url_suffix = re.sub("#.*", "", "".join(re.findall(is_Symbol, html.decode()))) if url_suffix: do_w3m = "w3m " + ref_dir + url_suffix subprocess.call(do_w3m, shell=True) else: print("The symbol was not found.") else: print("Please input 0 or 1 Symbol of Lisp.") 話題になってないけど、 コンスセル原器が廃止されるらしいぞ ttps://www.jwz.org/blog/2015/10/cons-conflict-resolved-at-last/ これだね。メートル原器もなくなると言うし、 時代の流れを感じるね コンス原器とか言ってるのはもちろんネタだからな、わかってると思うけど メートルの定義が科学的なものに置き換えられるから、そのパロディだからな? 原器は力が溢れている。 元気だから。 なんちゃってーー ネタだったのか どういうものなんだろうと唸りながら考えていた俺 グレアムの魔道書からではなく ホフスタッターのメタマジックゲームのlispの章を読んで lispやりたいと思ったプログラミング初心者だけど、 emacsでmaterialというカラーテーマにして フォントをRicty Diminished の斜体にしてから 全画面でlispのコードの見たらとても美しい言葉に見えた 美しいとそれだけでまた見たくなるから 学習意欲を保つためにはよいと思った。 >>273 ありがとうございます。今はじめて>>273 さんの書き込みを読みました。 しばらく時間が経ったのでclispのことを忘れてしまいました。 ぼちぼち回復するようにがんばります。 >>292 コードの美しさを感じ取れるといいコードが書けるようになるよ コードは書くよりも読むほうが、うんと多いから >>286 スレ違いなツッコミだがメートル原器はずっと前に基準でなくなっている 最近の話題はキログラムの方だな >>294 「land of lisp」という本にhaskellいいみたいなこと書いてあったけど、 haskellってどうなのかな common lispとhakellもやったことがあることがある人からしたら。 lispの括弧と前置記法って一貫している感じがして好き。 Schemeだとtyped racketとか型つけるのが流行っぽいけどcommon lispも似た感じになってたりします? Haskellは時々仕様が変わるから安心して使えない >>299 うーん、ちょっと使ってみたいけど、 後からワケが分からなくなりそうで不安 > LLVMベースのCommon Lispコンパイラ「Clasp」の開発チームは11月20日、最新版となる「Clasp 4.0」を公開した。 > Clasp 0.4ではインラインコンパイラの「CClasp」を一新し、最適化機能も強化された。 https://osdn.jp/magazine/15/11/25/161300 0.4 と 4.0 を間違えるなよ大違いだろ llvmはフリーなソフトウェアの敵 みたいなことをハッカー界隈の偉い人が言ってなかったっけ? llvmやjavaなどのgpl教団に狙われやすいcl Schemeはそんなことないのに 単純な質問なのですが、CommonLispにはリードマクロっていう構文解析機を自分で作れるてきな機能がありますが これってなんで廃れたのでしょうか?正直最強の機能だと感じたのですが ただ、触った感じ ・定義しないといけない事が多すぎて、自分好みのカスタマイズが時間がかかる。 ・同じ意味だけど構文解析失敗したら最後に成功したところまで戻ってくれないのでコレジャナイ感がすごい。 ・みんながみんなカスタマイズを好きにやって文化的に統合できなくなった このあたりが問題かなって感じているのですが、実際Lispコミュニティーにいる人たちのご意見が欲しいです。 OnLispとかLet over Lamnbdaとかやりおえてのままの感想なので >>1 RPGツクール2000 , RPGツクールMV https://tkool.jp/mv/ ( JavaScript 採用 ) WOLF RPGエディター http://www.silversecond.com/WolfRPGEditor/ デュエル・マスターズ Android版 ,i-OS版、公式 http://dm.takaratomy.co.jp/extra/dmapp/entrygate_ds/ デュエル・マスターズ対戦CGI ex https://web.archive.org/web/20150809154946/http ://www53.atwiki.jp/dmsuishinparty/pages/314.html デュエル・マスターズ(デュエマ)DM ONLINE 1.8a / VanGuard ONLINE 1.5a https://web.archive.org/web/20150809160254/http ://uhyohyohyo.sak ura.ne.jp/hsp.html ヴァンガード専用ネット対戦ツール【 VanGuard Online 】 https://web.archive.org/web/20150809155032/http ://kiimaa.jugem.jp/?eid=61 「カードファイト!!ヴァンガード」のネット対戦ができる公式オンラインゲーム「Cardfight!! Online」 2015年冬スタート https://web.archive.org/web/20150809153724/http ://supersolenoid.blog63.fc2.com/blog-entry-6886.html 遊戯王 Automatic Dueling System https://web.archive.org/web/20150809164855/http ://www3.atwiki.jp/ads-wiki/pages/20.html 遊戯王 デュエル・オンライン https://web.archive.org/web/20150809171527/http ://www31.atwiki.jp/vipdo/pages/15.html https://web.archive.org/web/20140628005202/http ://do.yugioh-portal.net/ ウィクロス( WIXOSS ) WEBXOSS http://webxoss.com/about_en.html http://webxoss.com/DeckEditor/ BG(ボードゲーム)Engine https://web.archive.org/web/20151209080842/https ://bgengine.net/ https://web.archive.org/web/20151209172205/http ://14owl.hateblo.jp/entry/2015/12/09/011234 アプレンティス マジック:ザ・ギャザリング(MtG)オンライン化 http://homepage1.nifty.com/Q_Q/ap.html https://web.archive.org/web/20151202202725/http ://homepage1.nifty.com/Q_Q/ap.html 【 オンラインTCGエディター 】 >>1 ,>>307 デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。 例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、 当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。 既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。 デュエマ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、旧ガンダム・ウォー、ライブオン、ディメンション・ゼロ、シャーマン・キング、カードヒーローなど のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書け。 マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストしろ。 個vs個、多数乱戦、チームvsチーム、個vsチームを実現し、P2P通信対戦プラグイン有り。 設計思想は 《 RPGツクール 》 が良いかな? 他に、優れたエディター有ったら挙げてみろ。 個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。 ↓ エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。 ↓ 遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。 バトスピ、ヴァンガ、デュエマなど発売済みゲームソフトが存在してるTCGはベンダーに研究させる。 ↓ 各社TCGを再現するテストプレイ ⇒ 更に改良や修正 + コード記述の仕様書(設計書)を作成。 ↓ 機能制限した下位版を制作しても原則として発売せず + 上位版デュエリ−グ用でサーバー稼動。 ↑ 下位版を仮に発売した場合の改造および商用利用には、別途で当社との契約が必要。 さ〜て、インド人ベンダーと日本人の翻訳担当PGを見つけよっと!ww http://wc2014.2ch.net/test/read.cgi/entrance2/1450555747/-20 こないだ出た common lisp recipes の電子版 ttp://www.apress.com/9781484211779 が2月1日までセールだとか(ダイレクトマーケティング) Pypiみたいに誰でもパッケージ登録出来るリポジトリが欲しい >>306 そもそも頻繁に使うようなものでもないし、廃れるという表現は違和感ありますな。 使う人は使っているけど、他人に迷惑をかけるかもしれないので、使用する際は注意して自己責任でやってくれと。 >>309 実用Common Lisp Kindle版も半額だなあ 翔泳社のKindle本が半額セールなんだとか bordeaux-threadsを使って標準出力に"hello" と出力しようとして (bt:make-thread #'(lambda () (sleep 2) (princ "hello"))) としてみたけど、何も出力されなくて、 (bt:make-thread #'(lambda () (sleep 2) (princ "hello" #.*standard-output*))) としたら、出力されました。 どうして*standard-output* で出力できず、 #.*standard-output*を使うと出力されるのでしょうか? *standard-output* がスペシャル変数だから、クロージャに参照を閉じ込められないせい。 スペシャル変数は、いわゆる動的スコープになる。 >>314 なるほどー。そういうことですか。 それで、#.を使うのですね。 ありがとうございます! 実践common lisp みたいな本を書くリスパーが少ないのはなぜなのでしょうか? リスパーは common lisp をあまり広めたくないということなのでしょうか? 実践common lisp みたいな本を買う人が少ないから Lispってちょっと勉強でつつく人は多いがガッツリやる人は少ないからね。 >>318 にわかLisperの存在が一番Lisp族言語のユーザに迷惑なんだよねぇ orz haskelとかjs界隈もそうみたいだけど。 良いも悪いも全部ひっくるめてLisp(あるいは言語X)で何かを作ることがすきな人にとっては大迷惑。 にわかが居ないのなんて、死んだ分野だけだよ。 成果出してればノイズは気にならないが、どんな迷惑が有るの? >>319 山は裾野が広くないと高くはなれんぞ お前は挫折したLisperの屍の上に登れ >>320 scheme派 vs CommonLisp派の罵り合いにpythonとruby好きが横からドロップキックで乱入みたいなblogとかmlとか 黒板人の話とかにわかどうしだけじゃないのが頭痛いと思う 議論の体でそれぞれのメリット/デメリットを天秤に乗せてるだけで、 罵り合いといというわけではないと思うんだが。 ディベートですらない、茶番だろ。 Maximaが使えるcl以上の存在はあるのか? 他言語の数式処理は微妙なのしかない sbcl にて,TCP ソケットを使ってプロセス間通信するライブラリを 使えるようなりました.これによりバイト列までを送ることは出来るようになったのですが, S 式をどうやって送ればよいか分かりません. S 式や lambda 式をバイト列にエンコード(?)する方法などはあるのでしょうか? >>327 S式を丸ごと文字列で投げても良くない? 追加: 最近Webサーバの仕事してるんだけど、JSONとかClojureのリテラル表記(datomicの処理)でやりとりするからS式をバイナリ通信(JSONに対応するならBSON)にする意義が出る場面って凄い少ないんだよね >>328 さんくす. そっか.データのリストなら (format nil ...) で文字列にすればできますね. その線でまずはやってみます. ただ,それだと関数が送れないですね. FUNCTION-LAMBDA-EXPRESSION の出力とかを送るのかな―. 関数は環境がぞろぞろとくっついてるから、シリアライズは容易でない。 動作中のイメージをまるごと移送するのなら出来なくもないと思うけど……、そんなことがやりたいのか? Windows環境でClozure CLのホームディレクトリは%USERPROFILE%なのでEmacsの起動バッチで %USERPROFILE%と%HOME%を独自に設定して起動してSlimeを使うとHyperSpecが引けなくなってしまう 何か回避策無いですかね〜。超不便だわ ChromeじゃなくてIEを標準ブラウザにしたら動いたw browse-url-generic-programでChromeのフルパス指定してやって一見落着じゃ LispよりEmacsのがハードル高いわ 離れすぎているからどこが同じでどこが違うとかいうのはいちいち列挙できへんわ。 Haskell っぽい部分だってそりゃあるだろうし、場合によっては Haskell 風のコードをそのまま持ち込めることだってある。 でも、やっぱり全然違うわ。 Haskellでmaxima以上に便利な数式処理ソフトあります? バッチの中だけでも%USERPROFILE%を変えるのは副作用が大きすぎて駄目じゃ。 全然、一見落着じゃないやんけ orz なぜか関数型ってくくり方でまとめられるときがあるけどまあ全然違うわな。 Windowsでスタンドアローンアプリ化するとコンソールアプリになるけど コンソールウインドウ消す方法はないの? GUI画面のとき邪魔 SBCLにはGUIオプションがあった。 他のには無いっぽいな。 このスレには人が居ないんか? こうなりゃ昔めんどうみた平手の造酒んとこでも行くか 初心者でLisp全然まだ分かってなくて、本を読みながら色々実験しているんだけど、 socketで使ってunicodeのデータをやり取りしようとしたら、どうしても文字化けしちゃって困った。 :external-formatとかいろいろ試したけどダメだった。 結局、flexi-streamsってライブラリ使ったらなんとかなったんだけど、こんなことでも外部のライブラリに頼らないといけないの? それとも僕がアホなだけなのかしら?もっといい方法あるのかな。lispworksがおかしいだけか? でも、プログラミング自体初心者なのにやりたいことは実現できちゃったのはビックリ。 replで実験しながらできるのがいいね。 >>345 文字コードがらみは純粋なdata streamとは別の領域なんで汎用言語全部が持ってる病の一種なのでどもならんのですよ。 slime必須な開発環境がネックかもね まあLispBoxまんま使えば良いけど 匿名通信(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的に分散され、特定のサーバーに依存しません ; closによるオブジェクト指向を勉強している最中だけど、Javaやc++と違って、プライベートな変数や関数とかないの? そうなると、あまり弄って欲しくない変数とかを弄るような危ないコードとか書けちゃうけど、それはプログラマーの裁量に任されているの? closは実行時になんでも弄れる仕組みになっているので隠してもしょうがない その代わりJavaやC++とは比較にならないほど動的 お勉強するなら遅延バインディングなどに代表される動的さを学ぶのが有益 (定義時に存在しないクラスのスロットをごにょごにょするなど) EmacsにはCLOSエミュのeieioがあるけどそれだとプライベートメンバーが作れる 当然eieioの場合はインスタンスは配列だから無理矢理いじろうとすれば可能だけど うっかり触る事は出来なくなる (slot-valueでアクセス出来なくなるとかsetfで書き込めないとか) >>357 ちゃんと機能してるよ :reader :accessor 経由だとどこでもアクセス出来る それらを定義しないで slot-value 経由でアクセスすると 定義された class 用の defmedhod 内じゃないとエラーになる >>358 は間違えた slot-value 経由でも defmethod 内ならどんな class 用のでもアクセス出来ちゃってた… >>357 のリンク先の通りだった もしかしたら次のバージョンなら直ってるのかもしれない Common Lispの規格を進化させようと日本人が頑張ってるサイトがあった気がしたけど全く見つからない 教えてくれ 身も蓋もないけど コモン規格なんだから 枯れてた方が良いんじゃねーの この機能が足りないって思ったら ライブラリ提供すればいいんだよ 規格を変えるってのは よほど説得力がないと難しい Common Lispのこの関数はこうすべきだったとか色々書いてて面白かったが ふと思い出してまた見たくなったけどググっても全然出てこなくて余計に見たくなってる… もう少し探してみるよ slideshareだったかな… CommonLisp好きだけど未だに関数をfuncallで呼ばないとイケナイ名前空間の扱いだけは理解できない。 なんで分けたんだろうって解説どこかにないかな? >>366 物事をカテゴライズして名前空間分けたいってニーズは別に変じゃない。 そういうの他の言語でもあるよね。 察するに言語設計者自信がその時偶々欲しかったのが入っちゃうんじないかな? 動詞と名詞を兼ねる単語が多すぎる英語にそもそもの問題があるやも list然りmap然り 質問だけどAllegro CLで実行ファイルを作成するとサイズはどれぐらいになる? SBCLだと40MB超えるけどAllegro CLだとどうなるか気になったので よく見たらAllegroで実行ファイルを作成出来るのはEnterprise版以上だった そもそもEnterprise版を使った人がいなさそうだな… それは、「お前ら貧乏人ばかりだな」と言ってるのと同じだな。 >>372 いや、流石にAllegro Enterprise を個人で買うのは滅多居ないだろw つかオンライン販売も小売りもとりあえずsalesへメールからってくらいだし、そもそも買ってる人自体特定業種のプロだけじゃねぇの? 数理システムだと社内で使ってるんじゃないの 中の人はこのスレ見てないか Professionalだと6万ぐらいだから個人でも買えなくもないけど Enterpriseはいくらすんだろ? 数十万はしそうだけど仕事で使うんなら払える額でもあるな >>375 まじ6万?! Lispworksより安いような。 >>376 Professinal版って32ビット版しかないかじゃないか? LispWorksの実行ファイル書き出しは最小で6.5-7.5MBぐらいからみたいだからかなりいいな けど64bit版がfor Hobby Usersとか書いてるくせに$1,500とか高いし… ECL使った事ないけど実行ファイルを作成したら普通にC言語で作ったぐらいのサイズになるんだろうね あと似たようなのにClaspがあるけど埋め込みするには今後はこっちが主流になるかな ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる