【入門】Common Lisp その11【質問よろず】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2014/09/21(日) 22:49:21.73ID:FJokPHUt
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/
2016/03/31(木) 01:45:19.30ID:C1c6UsPS
にわかが居ないのなんて、死んだ分野だけだよ。
成果出してればノイズは気にならないが、どんな迷惑が有るの?
2016/03/31(木) 19:20:58.97ID:fxztU3O6
>>319
山は裾野が広くないと高くはなれんぞ
お前は挫折したLisperの屍の上に登れ
2016/03/31(木) 19:24:02.44ID:JUFQTQot
俺の屍を越えてゆけ
2016/03/31(木) 20:22:01.85ID:X8/ytHGi
俺を踏んでくれ今scheme手習い中だ
2016/04/01(金) 12:10:45.45ID:cNuDUjMS
>>320
scheme派 vs CommonLisp派の罵り合いにpythonとruby好きが横からドロップキックで乱入みたいなblogとかmlとか
黒板人の話とかにわかどうしだけじゃないのが頭痛いと思う
2016/04/01(金) 19:44:05.93ID:1eTBcwLx
議論の体でそれぞれのメリット/デメリットを天秤に乗せてるだけで、
罵り合いといというわけではないと思うんだが。
ディベートですらない、茶番だろ。
2016/04/02(土) 00:57:27.46ID:HVYESdUP
Maximaが使えるcl以上の存在はあるのか?
他言語の数式処理は微妙なのしかない
2016/04/02(土) 11:14:05.11ID:H6gllaBZ
sbcl にて,TCP ソケットを使ってプロセス間通信するライブラリを
使えるようなりました.これによりバイト列までを送ることは出来るようになったのですが,
S 式をどうやって送ればよいか分かりません.
S 式や lambda 式をバイト列にエンコード(?)する方法などはあるのでしょうか?
2016/04/02(土) 12:26:41.02ID:k2fP1WMZ
>>327
S式を丸ごと文字列で投げても良くない?
2016/04/02(土) 12:31:05.73ID:k2fP1WMZ
追加:
最近Webサーバの仕事してるんだけど、JSONとかClojureのリテラル表記(datomicの処理)でやりとりするからS式をバイナリ通信(JSONに対応するならBSON)にする意義が出る場面って凄い少ないんだよね
2016/04/02(土) 16:05:25.84ID:H6gllaBZ
>>328 さんくす.
そっか.データのリストなら (format nil ...) で文字列にすればできますね.
その線でまずはやってみます.
ただ,それだと関数が送れないですね.
FUNCTION-LAMBDA-EXPRESSION の出力とかを送るのかな―.
2016/04/02(土) 17:44:40.57ID:4LcO4yg1
関数は環境がぞろぞろとくっついてるから、シリアライズは容易でない。
動作中のイメージをまるごと移送するのなら出来なくもないと思うけど……、そんなことがやりたいのか?
2016/04/06(水) 23:14:32.62ID:3jnY8rH1
Windows環境でClozure CLのホームディレクトリは%USERPROFILE%なのでEmacsの起動バッチで
%USERPROFILE%と%HOME%を独自に設定して起動してSlimeを使うとHyperSpecが引けなくなってしまう
何か回避策無いですかね〜。超不便だわ
333332
垢版 |
2016/04/06(水) 23:18:58.11ID:3jnY8rH1
ChromeじゃなくてIEを標準ブラウザにしたら動いたw
2016/04/06(水) 23:55:35.66ID:3jnY8rH1
browse-url-generic-programでChromeのフルパス指定してやって一見落着じゃ
LispよりEmacsのがハードル高いわ
2016/04/07(木) 00:31:50.58ID:838jiYpM
型が緩いhaskellという印象は合ってる?
2016/04/07(木) 02:04:56.57ID:DadLuQug
離れすぎているからどこが同じでどこが違うとかいうのはいちいち列挙できへんわ。
Haskell っぽい部分だってそりゃあるだろうし、場合によっては Haskell 風のコードをそのまま持ち込めることだってある。
でも、やっぱり全然違うわ。
2016/04/07(木) 03:12:28.37ID:69hNyYMv
Haskellでmaxima以上に便利な数式処理ソフトあります?
338334
垢版 |
2016/04/07(木) 18:56:54.61ID:ccUxIyvt
バッチの中だけでも%USERPROFILE%を変えるのは副作用が大きすぎて駄目じゃ。
全然、一見落着じゃないやんけ orz
2016/04/10(日) 19:23:57.88ID:vkQXckPD
なぜか関数型ってくくり方でまとめられるときがあるけどまあ全然違うわな。
2016/04/14(木) 10:33:43.60ID:HoZEVK9B
Windowsでスタンドアローンアプリ化するとコンソールアプリになるけど
コンソールウインドウ消す方法はないの?
GUI画面のとき邪魔
2016/04/14(木) 12:27:26.25ID:ahglGqCD
SBCLにはGUIオプションがあった。
他のには無いっぽいな。

このスレには人が居ないんか?
2016/04/15(金) 19:54:55.30ID:pOJBl4dX
2chがもう廃れてるしな
2016/04/15(金) 20:29:42.54ID:mBIjTfFV
じゃ、何処へ逝ったら良いんだ?
2016/04/16(土) 11:26:52.60ID:8wMWxABn
こうなりゃ昔めんどうみた平手の造酒んとこでも行くか
2016/04/16(土) 13:27:14.87ID:bPs+CkgD
初心者でLisp全然まだ分かってなくて、本を読みながら色々実験しているんだけど、
socketで使ってunicodeのデータをやり取りしようとしたら、どうしても文字化けしちゃって困った。
:external-formatとかいろいろ試したけどダメだった。
結局、flexi-streamsってライブラリ使ったらなんとかなったんだけど、こんなことでも外部のライブラリに頼らないといけないの?
それとも僕がアホなだけなのかしら?もっといい方法あるのかな。lispworksがおかしいだけか?

でも、プログラミング自体初心者なのにやりたいことは実現できちゃったのはビックリ。
replで実験しながらできるのがいいね。
2016/04/16(土) 16:36:43.09ID:MGs6Ga+C
>>345
文字コードがらみは純粋なdata streamとは別の領域なんで汎用言語全部が持ってる病の一種なのでどもならんのですよ。
2016/04/17(日) 21:44:33.74ID:goQ5YOot
割と取っ付きやすい言語だと思うんだけどね〜。
2016/04/18(月) 12:23:07.50ID:6QlHoC4+
slime必須な開発環境がネックかもね
まあLispBoxまんま使えば良いけど
2016/04/24(日) 22:39:11.27ID:scaRHXPI
emacsが嫌いでもAtom-Slimeあるぞ!
2016/04/25(月) 09:16:48.45ID:W8v031Mp
>>349
そんなんあるんかー
351デフォルトの名無しさん
垢版 |
2016/05/01(日) 15:18:51.08ID: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的に分散され、特定のサーバーに依存しません
2016/05/16(月) 08:34:14.29ID:fo7lQzzV
closによるオブジェクト指向を勉強している最中だけど、Javaやc++と違って、プライベートな変数や関数とかないの?

そうなると、あまり弄って欲しくない変数とかを弄るような危ないコードとか書けちゃうけど、それはプログラマーの裁量に任されているの?
2016/05/16(月) 21:45:38.72ID:jtYky004
パッケージとか言ってみる
2016/05/19(木) 02:07:18.56ID:jTIEwZO7
closは実行時になんでも弄れる仕組みになっているので隠してもしょうがない
その代わりJavaやC++とは比較にならないほど動的
お勉強するなら遅延バインディングなどに代表される動的さを学ぶのが有益
(定義時に存在しないクラスのスロットをごにょごにょするなど)
2016/05/19(木) 04:03:53.01ID:lKV7/eW/
> https://practical-scheme.net/wiliki/wiliki.cgi?Lisp%3A%E3%82%88%E3%81%8F%E3%81%82%E3%82%8B%E6%AD%A3%E8%A7%A3#H-22ymh4zauzzn9
> 「どんなに汚くても、打てる手段がある」というのは 何物にも替え難い救いなのです。
2016/05/20(金) 13:08:49.10ID:JbHmc+E3
EmacsにはCLOSエミュのeieioがあるけどそれだとプライベートメンバーが作れる
当然eieioの場合はインスタンスは配列だから無理矢理いじろうとすれば可能だけど
うっかり触る事は出来なくなる
(slot-valueでアクセス出来なくなるとかsetfで書き込めないとか)
2016/05/23(月) 01:28:42.95ID:wfdlAGNm
>> 355
eieioのそれほんとに機能してる?
https://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00402.html
closならmopで実装だろうね
358356
垢版 |
2016/05/23(月) 18:45:02.73ID:sxSKeUhG
>>357
ちゃんと機能してるよ
:reader :accessor 経由だとどこでもアクセス出来る
それらを定義しないで slot-value 経由でアクセスすると
定義された class 用の defmedhod 内じゃないとエラーになる
359356
垢版 |
2016/05/23(月) 18:54:51.46ID:sxSKeUhG
>>358は間違えた
slot-value 経由でも defmethod 内ならどんな class 用のでもアクセス出来ちゃってた…
>>357のリンク先の通りだった
もしかしたら次のバージョンなら直ってるのかもしれない
360デフォルトの名無しさん
垢版 |
2016/06/23(木) 23:59:50.36ID:G+YERTIa
Common Lispの規格を進化させようと日本人が頑張ってるサイトがあった気がしたけど全く見つからない
教えてくれ
2016/06/24(金) 00:22:49.85ID:RDdMjpj7
身も蓋もないけど
コモン規格なんだから
枯れてた方が良いんじゃねーの
2016/06/24(金) 12:20:42.94ID:Iu+HWWVT
もっと太らせる気なのか
今でも巨デブなのに
2016/06/24(金) 15:11:04.73ID:RDdMjpj7
この機能が足りないって思ったら
ライブラリ提供すればいいんだよ

規格を変えるってのは
よほど説得力がないと難しい
364360
垢版 |
2016/06/24(金) 15:12:24.11ID:64NOMHgE
Common Lispのこの関数はこうすべきだったとか色々書いてて面白かったが
ふと思い出してまた見たくなったけどググっても全然出てこなくて余計に見たくなってる…
もう少し探してみるよ
slideshareだったかな…
365360
垢版 |
2016/06/24(金) 16:07:31.75ID:64NOMHgE
http://www.slideshare.net/fukamachi/redesigning-common-lisp
これだった
日本語で一生懸命検索してたからそりゃ出てこないわけだ…お騒がせしました
2016/06/24(金) 16:41:47.94ID:YpPFayvt
CommonLisp好きだけど未だに関数をfuncallで呼ばないとイケナイ名前空間の扱いだけは理解できない。
なんで分けたんだろうって解説どこかにないかな?
2016/06/24(金) 17:42:01.98ID:t8u1m238
>>365
ああ、CL21 の人のか。
2016/06/24(金) 20:04:29.17ID:hXccTKlm
>>366
物事をカテゴライズして名前空間分けたいってニーズは別に変じゃない。
そういうの他の言語でもあるよね。
察するに言語設計者自信がその時偶々欲しかったのが入っちゃうんじないかな?
2016/06/24(金) 20:25:53.91ID:d6du9t53
動詞と名詞を兼ねる単語が多すぎる英語にそもそもの問題があるやも
list然りmap然り
370デフォルトの名無しさん
垢版 |
2016/07/01(金) 20:10:20.19ID:yQsAPI3T
質問だけどAllegro CLで実行ファイルを作成するとサイズはどれぐらいになる?
SBCLだと40MB超えるけどAllegro CLだとどうなるか気になったので
2016/07/02(土) 12:59:00.03ID:OqC3vtTc
よく見たらAllegroで実行ファイルを作成出来るのはEnterprise版以上だった
そもそもEnterprise版を使った人がいなさそうだな…
2016/07/02(土) 17:34:13.78ID:FM4LazWe
それは、「お前ら貧乏人ばかりだな」と言ってるのと同じだな。
2016/07/02(土) 17:43:37.01ID:wOG82f10
>>372
いや、流石にAllegro Enterprise を個人で買うのは滅多居ないだろw
つかオンライン販売も小売りもとりあえずsalesへメールからってくらいだし、そもそも買ってる人自体特定業種のプロだけじゃねぇの?
2016/07/03(日) 12:32:44.64ID:i88MiToD
数理システムだと社内で使ってるんじゃないの
中の人はこのスレ見てないか
2016/07/03(日) 21:01:01.25ID:yj3P75/T
Professionalだと6万ぐらいだから個人でも買えなくもないけど
Enterpriseはいくらすんだろ?
数十万はしそうだけど仕事で使うんなら払える額でもあるな
2016/07/03(日) 22:27:03.67ID:ZjY2/t9+
>>375
まじ6万?!
Lispworksより安いような。
2016/07/03(日) 23:13:52.65ID:nqVZhyDy
>>376
Professinal版って32ビット版しかないかじゃないか?
2016/07/04(月) 14:40:11.42ID:k9kiUpvM
LispWorksの実行ファイル書き出しは最小で6.5-7.5MBぐらいからみたいだからかなりいいな
けど64bit版がfor Hobby Usersとか書いてるくせに$1,500とか高いし…
2016/07/05(火) 02:57:14.28ID:HX6TWKu0
ECLは?
2016/07/06(水) 15:08:51.31ID:3m0XVVXB
ECL使った事ないけど実行ファイルを作成したら普通にC言語で作ったぐらいのサイズになるんだろうね
あと似たようなのにClaspがあるけど埋め込みするには今後はこっちが主流になるかな
2016/07/12(火) 23:20:50.64ID:CyKbMfvi
Common Lispの処理系がわざとバグを入れてmaximaが動かなくなるように仕向けてるようなのを見つけたのだけど
Abclとclispはgnome3と同じ状態になってる?
2016/07/13(水) 04:54:37.74ID:4HQ8M+Y/
maximaは主に古い仕様のcommonlispで動く
処理系が古い仕様のサポートをやめることをmaxima切り捨ての陰謀とするなら
そうなんじゃないの
maximaが合せるのが筋だろ
2016/07/13(水) 05:14:45.73ID:7U1J32do
互換性を保てないならcommonなんて名乗らないでほしい
2016/07/13(水) 10:56:35.33ID:/T6M1MVl
Commune Lisp
2016/07/13(水) 15:43:05.70ID:xtHEpCPd
gommen lisp
2016/07/13(水) 22:43:00.43ID:Fcdf94Kw
sourceforgeが死んでてMaximaのサイトにアクセス出来んぞ…
SBCLのサイトにもアクセス出来ないしCL界隈はsourceforgeに依存してるとこが多いな
2016/07/13(水) 22:49:06.02ID:/T6M1MVl
アドウェア配布サイトに依存するとはいかんな
2016/08/12(金) 21:39:14.20ID:duu5cHW/
フリーソフト作る目的でAllegro CLのAcademic版のEnterprise版買った方いませんか?
非商用目的で64bit版の実行ファイルを作れるとなると、Enterprise版でAcademic版を買うのがよいのかなと。
(そもそも、条件にマッチしてるかわかってないですが)

Academic版ならEnterpriseでも意外にお手頃価格で買えたりしないかな?

そういえば、Allegro CLの日本代理店って撤退したんですかね?
HPが消えてるのか、アクセスできないですね。
2016/08/13(土) 20:37:11.64ID:moPmKDp5
>>388
Allegroはなぁ、ネタに値段書いていない銀座の寿司屋のイメージが
2016/08/24(水) 21:29:45.05ID:9kP9ZOpP
何千桁もあるbignumを適当な所に小数点を打ったり10桁毎にスペースを入れたり
100桁毎に改行して表示したいけど、formatでやる方法があったら教えてくれ
2016/08/25(木) 00:53:05.88ID:zjrUiCsA
>> 390
ない.
調べるよりプログラム書いた方がはやい.loopマクロで5行位で書ける.
どうしてもformatつかうなら自分で書いてformatの~/で呼べば?
2016/08/25(木) 09:19:55.78ID:1bKygDuA
>>390
(format t "~,,' ,10:D" 222232244629420445529739893461909967206666939096499764990979600)
222 2322446294 2044552973 9893461909 9672066669 3909649976 4990979600

> 2.3.1 ~D ― Decimal
> arg の消費: 1個
> パラメータ: ~ mincol , padchar , commachar , comma-interval D
(中略)
> ` : ’ で修飾すると,下から comma-interval 桁ごとに commachar で指定された文字で数字を区切る ( comma-interval のデフォルトは3, commachar のデフォルトは ` , ’ ) .
http://super.para.media.kyoto-u.ac.jp/~tasuku/format-func.html

上の例だと commachar は空白、comma-interval は 10、他のパラメータは無し
文字をパラメータにする場合その文字の頭に単引用符 ' を付けて表す
改行もOK

(format t "~,,'
,1:D" 123)
1
2
3
393390
垢版 |
2016/08/25(木) 13:02:06.57ID:fbmJygYr
返答どうも!
>>391
formatのドキュメント見ても無さそうだったから聞いてみたけど、やっぱりないんだね…
素直にloopでやることにする

>>392
そうか、カンマをスペースにすれば10桁区切りは出来るのか
100桁目を改行に出来れば最高だが、あまり大きくないbignumならこれで十分か
とりあえずありがとう
2016/08/25(木) 14:33:57.04ID:6zcPyAfh
学習用にC++で書いた楕円曲線暗号のデバッグの時にBignum何度も目視したの思い出してちと鬱が入るなぁ
395デフォルトの名無しさん
垢版 |
2016/09/13(火) 11:41:49.02ID:J1eBbaIT
日本人コモンリスパーで有名な人って誰?
竹内センセーと苫米地ハカセ以外で!
2016/09/13(火) 22:25:28.74ID:8U9RmJUe
竹内センセーと苫米地ハカセは国際コモンリスパーとしての認知度は低いヨ
もちろんtakの竹内センセーは知られているけどコモンリスパーじゃないネ
トマベチ? ダレ?
fukamachi ,kuroda は広く知られているヨ
2016/09/14(水) 07:54:21.71ID:JzjCbHsO
国内の知名度ではドクター苫米地が圧倒的だろう
2016/09/22(木) 11:55:47.84ID:svLBF04r
何がまずいのかわからん。
誰か教えて。

(defun f (x) (* 2 x))
(defun g (y z) (y z))

(g f 3)

*** - SYSTEM::READ-EVAL-PRINT: variable F has no value
The following restarts are available:
USE-VALUE :R1 Input a value to be used instead of F.
STORE-VALUE :R2 Input a new value for F.
ABORT :R3 Abort main loop
2016/09/22(木) 12:41:06.30ID:Q0XXtJDC
>>398

(defun f (x) (* 2 x))
(defun g (y z) (funcall y z))

(g #’f 3)
6

Ref.
http://www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/functions.html
2016/09/22(木) 14:56:41.64ID:svLBF04r
>>399
動きました。
ありがとうございます。
2016/09/23(金) 21:24:52.87ID:CYp0vnmU
Scheme 系だと

(define (f x) (* x 2))
(define (g y z) (y z))

(g f 3)
6

って書けるんだね。
2016/09/23(金) 21:27:52.82ID:y9ZJGzw+
へ〜
403デフォルトの名無しさん
垢版 |
2016/09/24(土) 05:38:26.18ID:nvb+KqdK
関数型のブームは来てるけど
HaskellとかScalaに押されてない?
2016/09/24(土) 08:10:52.77ID:VAyZ/8kj
GNU makeやgdbにguileがリンクされるようになったよ
もう少しの辛抱や
2016/09/24(土) 17:22:03.97ID:ryMydsM5
Common Lispはマルチパラダイムの言語だ
goto(go)すら存在する
2016/09/25(日) 21:24:57.99ID:HvtwLO9L
>>405
goはマッカーシーのlispからあるけどお。すらってなにい?
2016/09/25(日) 22:23:20.95ID:eD42xPoY
すらまっぱぎ
2016/09/26(月) 15:46:42.52ID:b0MmmDW8
>>406
Common LispのスレでCommon Lispと言って何か問題あるか?
2016/10/05(水) 23:25:20.08ID:C9cv9Gl5
>>366
Steeleが互換性考えて別にしたけど
やっぱり一緒にしとけばよかったーと後に述懐していた
2016/10/12(水) 15:59:00.20ID:RYqLfx9/
その代わりCommon Lispはlistとかstringという変数名を定義出来る
Schemeの場合lstとかlsって変数名にせざるを得ない
あとapplyの方が使用頻度が高い気がするがSchemeでも普通に使うわけだから
funcallを使うのは一貫性があるとも言える
2016/10/12(水) 16:33:55.36ID:8kMwO8W7
今となっては後の祭りだし慣れないしとあるが、lisp-1にするなら最初の関数名をもっと考えた方が良かったような。
listじゃなくてmklistとかさ。
2016/10/12(水) 16:34:06.22ID:M1jDwzz2
#fと'()の分離はなんでだったんや?
2016/10/12(水) 17:40:21.14ID:RYqLfx9/
それはSchemeスレでする話だな
2016/10/13(木) 20:07:13.89ID:xgGYMiuu
0や""はtrueなのに'()だけがfalseになるのが美しくないからだろう
C言語の0みたいに特定の値が自動的にfalseになるのは古い言語だからだな
2016/10/13(木) 22:52:04.77ID:C1I1uhJH
いずれの仕様であっても特に美しいとは思わんな。
決め事でしか無いように思う。
2016/10/15(土) 20:05:40.07ID:HnVxap0b
デフォルトコンストラクタと等しい値はすべてfalseにしてしまえ。
417デフォルトの名無しさん
垢版 |
2016/10/16(日) 18:14:50.68ID:r9fJMQJL
ふと、このスレを見つけたので質問します。
「Land of Lisp」を参考に、CLISPでCommonLisp勉強してるんですが、LEPL
じゃなくてLispのコードをエディタで書いて一度に実行させるなんて
ことはできるんでしょうか?
出来るなら方法を教えてください。参考サイトなどでも構いません。
418デフォルトの名無しさん
垢版 |
2016/10/16(日) 18:17:07.36ID:r9fJMQJL
>>417の書き込みの訂正

LEPLじゃなくてREPLです。
2016/10/16(日) 21:52:46.83ID:8ptZ6tcn
うちはSBCLだけど、たぶんloadでできる
$ cat hoge.lisp
(defun twice (f x) (funcall f (funcall f x)))
(defun dbl (x) (* x 2))
$ sbcl
This is SBCL 1.3.6, an implementation of ANSI Common Lisp.
(略)
* (load "hoge")

T
* (twice #'dbl 3)

12
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況