Common Lisp、SchemeをはじめとするLisp族全般のスレです
■前スレ
Lisp Scheme Part39
http://peace.2ch.net/test/read.cgi/tech/1408017352/
■テンプレ
ttp://wiki.fdiary.net/lisp/
■関連スレ
【入門】Common Lisp その11【質問よろず】
http://peace.2ch.net/test/read.cgi/tech/1411307361/
【Scheme】Schemeインタプリタ Mosh Part1【Lisp】
http://peace.2ch.net/test/read.cgi/tech/1272469779/
【Lisp】プログラミング言語 Clojure #3【JVM】
http://peace.2ch.net/test/read.cgi/tech/1380333808/
【魔法】リリカル☆Lisp【言語】
http://peace.2ch.net/test/read.cgi/tech/1183396621/
探検
Lisp Scheme Part40 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2015/03/16(月) 13:45:52.92ID:EEYZoZ1i
784デフォルトの名無しさん
2017/12/27(水) 21:59:50.53ID:I7jb5yVK 最近はnumpyにしか実装がない数値計算法が増えた
Racketはnumpyのインターフェースあるけど、他はどう?
Racketはnumpyのインターフェースあるけど、他はどう?
785はちみつ餃子 ◆8X2XSCHEME
2017/12/28(木) 00:32:55.47ID:gVqXCAzj Racket にはそんな変態なものがあるんか。
どうやって実現しているのか興味あるけど、ググっても見つけられなかった。
どうやって実現しているのか興味あるけど、ググっても見つけられなかった。
786デフォルトの名無しさん
2017/12/28(木) 16:57:30.14ID:kqg0/H36 ラケット王国の和訳まだかなーチンチン
787デフォルトの名無しさん
2017/12/29(金) 08:38:15.66ID:xmeHjPXR C++のインターフェースある処理系ならboost.numpyでnumpyは動きそうだが
788デフォルトの名無しさん
2017/12/29(金) 20:54:07.52ID:UJC0BA5u clmlってどうなん
789デフォルトの名無しさん
2017/12/29(金) 21:45:51.42ID:srQz1veo 機械学習ライブラリとしてなら優秀だけど
今話題になってるディープラーニング対応してない
今話題になってるディープラーニング対応してない
790はちみつ餃子 ◆8X2XSCHEME
2017/12/30(土) 01:36:01.07ID:JIvbFZ2K >>787
boost.numpy はテンプレートもだばだば使ってるし、それをあらためて動的型の言語にバインディングするのあほらしいやろ。
boost.numpy はテンプレートもだばだば使ってるし、それをあらためて動的型の言語にバインディングするのあほらしいやろ。
791デフォルトの名無しさん
2017/12/30(土) 05:34:18.51ID:QS05oFb5 numpyも実体はlapackのインターフェース
792デフォルトの名無しさん
2017/12/30(土) 21:52:30.82ID:wf2zlY04 Fortran最強か。
793デフォルトの名無しさん
2017/12/30(土) 22:04:07.78ID:NAE2hL7d gaucheかchickenでGUIやるの厳しい?
tkはlinuxだとめっちゃ汚いから嫌なんだけど
Iupというの気になるんだけど試してみた人いませんか
tkはlinuxだとめっちゃ汚いから嫌なんだけど
Iupというの気になるんだけど試してみた人いませんか
794はちみつ餃子 ◆8X2XSCHEME
2017/12/30(土) 23:13:03.41ID:JIvbFZ2K Gauche や Chicken なら GTK バインディングが楽に使えると思う。
私は使ったことないけど Racket の GUI ライブラリは使いやすいみたいに聞くので、
処理系にこだわりがないなら試してみてもいいんじゃない?
私は使ったことないけど Racket の GUI ライブラリは使いやすいみたいに聞くので、
処理系にこだわりがないなら試してみてもいいんじゃない?
795デフォルトの名無しさん
2017/12/31(日) 20:27:42.78ID:Pbe3xhzg gaucheとchickenってどっちがいいの?
796はちみつ餃子 ◆8X2XSCHEME
2018/01/01(月) 00:26:59.62ID:jbWUirsb 用途や好みによる
797デフォルトの名無しさん
2018/01/01(月) 15:16:31.98ID:rap/X9U7 (display "Happy New Year.")
798デフォルトの名無しさん
2018/01/01(月) 17:48:15.95ID:UkMdhu1o 今からClojure入門しようと思うんですけど
「Clojure for the Brave and True」
この入門書ってどうなんでしょう?
ポチるか悩んでいるので一押し欲しいです
「Clojure for the Brave and True」
この入門書ってどうなんでしょう?
ポチるか悩んでいるので一押し欲しいです
799デフォルトの名無しさん
2018/01/01(月) 20:52:29.11ID:aCEoQmmW それって無料公開されてないか?
読んでないが
読んでないが
800デフォルトの名無しさん
2018/01/01(月) 22:42:18.07ID:REb0gAPE801はちみつ餃子 ◆8X2XSCHEME
2018/01/02(火) 02:15:48.60ID:U19H6e17 Clojure スレで相談した方がよくない?
802デフォルトの名無しさん
2018/01/03(水) 01:18:40.47ID:E10k9nmq (特定のスレに書き込めないテスト)
>>776
5章になって急に難しくなりました‥
http://d.hatena.ne.jp/kazu-yamamoto/20101021/1287625788
>リストのリストに対して、深く再帰します。見方を変えれば、これは木構造に対する再帰です。
それまでは(復習は必要ですが)理解に苦しむことはなかったんですが‥
5章になって急に難しくなりました‥
http://d.hatena.ne.jp/kazu-yamamoto/20101021/1287625788
>リストのリストに対して、深く再帰します。見方を変えれば、これは木構造に対する再帰です。
それまでは(復習は必要ですが)理解に苦しむことはなかったんですが‥
804デフォルトの名無しさん
2018/01/03(水) 21:17:21.44ID:E10k9nmq 本は仕様の確認程度に留めて処理系の実装を一通り見た方が理解が早いよ
俺は昔SECDR-SchemeやTiny-Scheme辺りのソース読んでSchemeの全てを理解した
俺は昔SECDR-SchemeやTiny-Scheme辺りのソース読んでSchemeの全てを理解した
805デフォルトの名無しさん
2018/01/04(木) 06:24:55.50ID:ZoCOsoct 勉強していく上で参考になるプログラムを見つけられないのが痛い
特にgaucheとかchickenでのオブジェクト指向をどうやって身につければいいの
特にgaucheとかchickenでのオブジェクト指向をどうやって身につければいいの
806はちみつ餃子 ◆8X2XSCHEME
2018/01/04(木) 19:59:41.91ID:l3TQzZ4M Gauche で書いたプロジェクトとしては WiLiKi とかどう?
shiro さん自身が書いてるのがいちばん Gauche 的に綺麗な書き方じゃね?
shiro さん自身が書いてるのがいちばん Gauche 的に綺麗な書き方じゃね?
807デフォルトの名無しさん
2018/01/04(木) 20:10:19.94ID:L/Z2udtD gaucheがライブラリを含めて固まってから書かれたならそう断言できるけど……
808デフォルトの名無しさん
2018/01/05(金) 07:35:42.44ID:zqdaz1Y8 RacketのプログラムをCと同じぐらいに高速化したい
Checkenで動くように改変すれば手間かからずに高速化出来るんだろうか
Checkenで動くように改変すれば手間かからずに高速化出来るんだろうか
809デフォルトの名無しさん
2018/01/05(金) 07:47:07.98ID:Lf4apqlY なんで Checken? Chez の方が速いでしょう。
810はちみつ餃子 ◆8X2XSCHEME
2018/01/05(金) 12:55:55.45ID:CY5W8ai3 Racket は速い方なので、それで不満なら単純に (手間をかけずに) 移植してもたいした高速化は望めないと思う。
処理系ごとのクセはあるから場合によっては載せ替えるだけで高速化になることも無いわけじゃないが、
やってみないと (検証の手間をかけないと) 結果はわからぬ。
処理系ごとのクセはあるから場合によっては載せ替えるだけで高速化になることも無いわけじゃないが、
やってみないと (検証の手間をかけないと) 結果はわからぬ。
811デフォルトの名無しさん
2018/01/06(土) 20:15:13.51ID:EqGxuZle shenってどうなの?
812はちみつ餃子 ◆8X2XSCHEME
2018/01/06(土) 20:25:52.03ID:mAB25EnJ どうとは?
813デフォルトの名無しさん
2018/01/06(土) 20:53:46.77ID:/zx+3sJQ 使ってみた感想あれば聞きたいね
日本語情報少ないし、用途もよくわからない
日本語情報少ないし、用途もよくわからない
814デフォルトの名無しさん
2018/01/06(土) 23:25:04.14ID:+G0EWjNB Prolog を結合させた玩具か
815デフォルトの名無しさん
2018/01/07(日) 01:55:08.52ID:xXD5IJqM 実装がたくさんあってスマホで遊べるくらいしか知らん
816デフォルトの名無しさん
2018/01/08(月) 07:56:07.49ID:iCZsrYFg スマホアプリもあるんか
シーケント計算ベースの型システムってのが難しそう
シーケント計算ベースの型システムってのが難しそう
817デフォルトの名無しさん
2018/01/08(月) 14:33:12.38ID:GiAqRu5e >>816
> シーケント計算ベースの型システムってのが難しそう
別にそういうことはない
型システムを良く行われるように自然演繹で定式化するかシーケント計算で定式化するかという定式化のスタイルの違いだけだから
大雑把に言えばシーケント計算は自然演繹のmeta calculusというスタイルだというだけだからね
> シーケント計算ベースの型システムってのが難しそう
別にそういうことはない
型システムを良く行われるように自然演繹で定式化するかシーケント計算で定式化するかという定式化のスタイルの違いだけだから
大雑把に言えばシーケント計算は自然演繹のmeta calculusというスタイルだというだけだからね
818デフォルトの名無しさん
2018/01/12(金) 00:43:08.04ID:FCuivLM3 https://github.com/adtac/autovpn/blob/master/autovpn.go
このopenvpnを使ってvpngateに接続するだけの、80行程度のgolangのコードをgaucheで書くとどんな感じになりますでしょうか
このopenvpnを使ってvpngateに接続するだけの、80行程度のgolangのコードをgaucheで書くとどんな感じになりますでしょうか
819デフォルトの名無しさん
2018/01/13(土) 04:15:46.39ID:l9Ynoqag 誰かー
820はちみつ餃子 ◆8X2XSCHEME
2018/01/13(土) 20:46:00.95ID:SxvD86sf >>818
こんな感じかな?
https://ideone.com/w5FtZ9
ideone はコード中の URL らしきものを適当にぼやかす機能があるらしく、勝手に置き換えられちゃった。
「download」のリンクでは本来の通りになるみたいなので、 html からコピペじゃなくてそっちを使ってね。
あと、 openvpn を手元で導入せずにそれっぽく書いたのでほんとにちゃんと動くか確かめてないぽよ〜
こんな感じかな?
https://ideone.com/w5FtZ9
ideone はコード中の URL らしきものを適当にぼやかす機能があるらしく、勝手に置き換えられちゃった。
「download」のリンクでは本来の通りになるみたいなので、 html からコピペじゃなくてそっちを使ってね。
あと、 openvpn を手元で導入せずにそれっぽく書いたのでほんとにちゃんと動くか確かめてないぽよ〜
821はちみつ餃子 ◆8X2XSCHEME
2018/01/13(土) 20:47:24.55ID:SxvD86sf >>820
いいかげんに書いたけど、まじめに書くならもうちょっと小さい手続きに分割するかも
いいかげんに書いたけど、まじめに書くならもうちょっと小さい手続きに分割するかも
822デフォルトの名無しさん
2018/01/14(日) 01:34:58.23ID:+lMGsT0I >>820
ありがと😍
ありがと😍
823はちみつ餃子 ◆8X2XSCHEME
2018/01/15(月) 03:15:00.90ID:PgCT585d ちゃんと使えた?
824デフォルトの名無しさん
2018/01/15(月) 04:35:38.24ID:BnLwMjmV ちょこっと修正すれば接続は出来ました
+(use srfi-11)
- (set! chosenCountry (list-ref 1)))
+ (set! chosenCountry (list-ref args 1)))
でもCtrl-cするとエラーが出て[autovpn] try another VPN? (y/n)に進めない😱
^CMon Jan 15 04:25:51 2018 event_wait : Interrupted system call (code=4)
*** UNHANDLED-SIGNAL-ERROR: unhandled signal 2 (SIGINT)
Stack Trace:
_______________________________________
0 (sys-waitpid (process-pid process) :nohang nohang?)
at "/usr/share/gauche-0.9/0.9.5/lib/gauche/process.scm":436
1 (process-wait process)
at "./autovpn.scm":42
2 (%with-signal-handlers (list (cons (%make-sigset SIGTERM) (^ ...
expanded from (with-signal-handlers ((SIGTERM (process-send-signal process
at "./autovpn.scm":40
3 (fn item)
at "/usr/share/gauche-0.9/0.9.5/lib/gauche/procedure.scm":303
+(use srfi-11)
- (set! chosenCountry (list-ref 1)))
+ (set! chosenCountry (list-ref args 1)))
でもCtrl-cするとエラーが出て[autovpn] try another VPN? (y/n)に進めない😱
^CMon Jan 15 04:25:51 2018 event_wait : Interrupted system call (code=4)
*** UNHANDLED-SIGNAL-ERROR: unhandled signal 2 (SIGINT)
Stack Trace:
_______________________________________
0 (sys-waitpid (process-pid process) :nohang nohang?)
at "/usr/share/gauche-0.9/0.9.5/lib/gauche/process.scm":436
1 (process-wait process)
at "./autovpn.scm":42
2 (%with-signal-handlers (list (cons (%make-sigset SIGTERM) (^ ...
expanded from (with-signal-handlers ((SIGTERM (process-send-signal process
at "./autovpn.scm":40
3 (fn item)
at "/usr/share/gauche-0.9/0.9.5/lib/gauche/procedure.scm":303
825はちみつ餃子 ◆8X2XSCHEME
2018/01/19(金) 06:28:45.76ID:Sx7ZjBeS >>824
あー、たぶんやけどシグナルマスクがアレなんとちゃうかな。
先にチャイルドプロセスにシグナルが伝播して終了しとんのにシグナルを送ろうとしてもうそのプロセスのうなっとるって感じ。
Windows だとシグナルマスクはなんにも意味なくて、 Unix (POSIX ?) とは扱いが違うんで、ワイにはようわからんのやわ。
すまんの
あー、たぶんやけどシグナルマスクがアレなんとちゃうかな。
先にチャイルドプロセスにシグナルが伝播して終了しとんのにシグナルを送ろうとしてもうそのプロセスのうなっとるって感じ。
Windows だとシグナルマスクはなんにも意味なくて、 Unix (POSIX ?) とは扱いが違うんで、ワイにはようわからんのやわ。
すまんの
826デフォルトの名無しさん
2018/01/19(金) 20:50:44.46ID:mTCJnuoL 自分でも調べてみるわ😷
827デフォルトの名無しさん
2018/01/20(土) 19:46:46.44ID:5w5DrmOx :optional引数ってどうやって指定するんですか(?_?)
828はちみつ餃子 ◆8X2XSCHEME
2018/01/21(日) 02:44:01.85ID:+OtUX/+i Scheme でオプショナル引数を受け取る手続きをどう書くか? という意味?
829デフォルトの名無しさん
2018/01/21(日) 03:29:23.34ID:88fiVAag オプショナル引数を受け取れる手続きにどうやって渡すかという意味でつ
830デフォルトの名無しさん
2018/01/21(日) 04:44:31.01ID:+OtUX/+i それって聞かなきゃわからんような要素あるか?
普通に引数を書く以外にすることないだろ。
普通に引数を書く以外にすることないだろ。
831デフォルトの名無しさん
2018/02/03(土) 09:20:23.41ID:AXuwnjr7 はちみつ餃子 ◆8X2XSCHEME怒らせたら大したもんやで
832デフォルトの名無しさん
2018/02/03(土) 14:16:47.87ID:Rohe4eLB (apply オプショナル引数付き関数 (list 引数))
こうです
こうです
833はちみつ餃子 ◆8X2XSCHEME
2018/02/03(土) 18:37:12.13ID:h6JvH1q6 あー、なるほど、そういうことを聞きたかったのか。
834デフォルトの名無しさん
2018/02/23(金) 00:09:07.20ID:Gx1M+RW0 Lisp勉強するのに、白と黒の扉、聖霊の箱って役に立つ?
>>834
amazon でみたところ、「白と黒の扉」とかは、オートマトンやチューリングマシンの話だから lisp とはあまり関係ないんじゃないかな?
いや、 lisp でオートマトンやチューリングマシンを記述したいのだったら話は別だが
この手の話は、私は手元に
https://www.amazon.co.jp/dp/4627805500/
を置いて逐次参照しています、チューリングマシンの適当な発展書があれば、教えていただけるとうれしい
amazon でみたところ、「白と黒の扉」とかは、オートマトンやチューリングマシンの話だから lisp とはあまり関係ないんじゃないかな?
いや、 lisp でオートマトンやチューリングマシンを記述したいのだったら話は別だが
この手の話は、私は手元に
https://www.amazon.co.jp/dp/4627805500/
を置いて逐次参照しています、チューリングマシンの適当な発展書があれば、教えていただけるとうれしい
836デフォルトの名無しさん
2018/02/23(金) 20:04:19.51ID:VPGO0qVd837デフォルトの名無しさん
2018/02/23(金) 20:31:20.28ID:VPGO0qVd >>835
激しくすれ違いだけど
http://www.saiensu.co.jp/?page=book_details&ISBN=ISBN978-4-7819-9929-6&YEAR=2017
とか
http://gihyo.jp/book/2015/978-4-7741-7270-5
とか
激しくすれ違いだけど
http://www.saiensu.co.jp/?page=book_details&ISBN=ISBN978-4-7819-9929-6&YEAR=2017
とか
http://gihyo.jp/book/2015/978-4-7741-7270-5
とか
838デフォルトの名無しさん
2018/02/24(土) 10:43:23.87ID:luJPVo2x >>835-836
わかったそのうち読んでみる
わかったそのうち読んでみる
839デフォルトの名無しさん
2018/02/25(日) 21:58:20.05ID:a878t0wv もねまね鳥をまねる
スマリヤン先生って去年亡くなってたのか
120歳まで生きると思ってた
スマリヤン先生って去年亡くなってたのか
120歳まで生きると思ってた
840はちみつ餃子 ◆8X2XSCHEME
2018/02/25(日) 22:22:47.90ID:ZmnJQjxy スマリヤンって関西っぽい響きがあるよね。
スマリやん?www
スマリやん?www
841デフォルトの名無しさん
2018/02/25(日) 23:10:56.46ID:jsjHDqU/ >>839
あれはチューリングマシンじゃなくてコンビネータ
あれはチューリングマシンじゃなくてコンビネータ
842デフォルトの名無しさん
2018/02/28(水) 22:11:14.24ID:rEovxY4/ >>840
ああっ昔駄洒落自動生成機を作ろうとした黒歴史を思い出した
ああっ昔駄洒落自動生成機を作ろうとした黒歴史を思い出した
843デフォルトの名無しさん
2018/03/04(日) 07:44:31.66ID:TAStDbGK すまん。初心者です。教えてください。
仮に学校の比較?などを扱うプログラムを作ろうとしていて、schoolという1つの学校の情報をまとめたクラスを作るとします。
そのクラスの中に、以下のような学生の情報をまとめたテーブルの情報をぶち込みたいとして、どのようにこれらのテーブルをschoolクラス内に保存するのがいいですか。
名前 整理番号 性別 2ちゃんねら 馬鹿 橋本環奈好き 年齢
taro 0 #\M t t nil 16
hanako 1 #\F nil t t 16
nagisa 2 #\L nil nil t 18
hoge
piyo
foobar
...
学校によって人数は若干違いますが、基本的にテーブルの大きさはそれほど大きくないとします。
それぞれの要素を頻繁に検索・参照する必要があります。
僕が思いつくのは、
・schoolのstudentsというスロットに、1人のデータの1つのリスト・構造体・クラスにして、そのリストとして保存。
・ハッシュテーブルをつかって、下記のような形で保存。
2CHP ((NAGISA NIL) (HANAKO NIL) (TARO T))
BAKAP ((NAGISA T) (HANAKO T) (TARO T))
ぐらいなのですが、このうちどれがおすすめとか、これら以外にもっと便利な方法などありましたら教えてください。
よろしくお願いいたします。
仮に学校の比較?などを扱うプログラムを作ろうとしていて、schoolという1つの学校の情報をまとめたクラスを作るとします。
そのクラスの中に、以下のような学生の情報をまとめたテーブルの情報をぶち込みたいとして、どのようにこれらのテーブルをschoolクラス内に保存するのがいいですか。
名前 整理番号 性別 2ちゃんねら 馬鹿 橋本環奈好き 年齢
taro 0 #\M t t nil 16
hanako 1 #\F nil t t 16
nagisa 2 #\L nil nil t 18
hoge
piyo
foobar
...
学校によって人数は若干違いますが、基本的にテーブルの大きさはそれほど大きくないとします。
それぞれの要素を頻繁に検索・参照する必要があります。
僕が思いつくのは、
・schoolのstudentsというスロットに、1人のデータの1つのリスト・構造体・クラスにして、そのリストとして保存。
・ハッシュテーブルをつかって、下記のような形で保存。
2CHP ((NAGISA NIL) (HANAKO NIL) (TARO T))
BAKAP ((NAGISA T) (HANAKO T) (TARO T))
ぐらいなのですが、このうちどれがおすすめとか、これら以外にもっと便利な方法などありましたら教えてください。
よろしくお願いいたします。
844843
2018/03/04(日) 08:03:30.14ID:TAStDbGK 作ったハッシュテーブルをschoolのstudentsスロットにぶち込むと言うことです。
あと、nagisaさんは馬鹿ではありません。失礼しました。
こーいうクラスとかの設計の基本と言うか定石ってどうやって勉強したらええの?
あと、nagisaさんは馬鹿ではありません。失礼しました。
こーいうクラスとかの設計の基本と言うか定石ってどうやって勉強したらええの?
845はちみつ餃子 ◆8X2XSCHEME
2018/03/04(日) 09:04:58.34ID:R9gQD4Ga 何が良くて何が悪いかなんてやってみなきゃわからんよ。
まず動くものを作ってから出来が悪いと思ったところを直していったらいい。
LISP の良さってそういうとこだろ。
まず動くものを作ってから出来が悪いと思ったところを直していったらいい。
LISP の良さってそういうとこだろ。
846デフォルトの名無しさん
2018/03/04(日) 13:12:25.83ID:lKMWv6ic studentクラスの定義がまず先かな
あとstudentsはキーを何にするかが問題
多分名前なんだろうけど、他の項目でも取り出したいときはハッシュテーブルだと面倒だから単に配列でも良いと思うがな
あとstudentsはキーを何にするかが問題
多分名前なんだろうけど、他の項目でも取り出したいときはハッシュテーブルだと面倒だから単に配列でも良いと思うがな
847デフォルトの名無しさん
2018/03/04(日) 17:37:51.82ID:A+6ka4SL848はちみつ餃子 ◆8X2XSCHEME
2018/03/04(日) 18:07:26.80ID:R9gQD4Ga オブジェクトシステムを積極的に使うべきかどうかは確かに場合によるし使わなくても割といけるが、
関数型とオブジェクト指向は直行する概念で、関数型であるからオブジェクトシステムの価値が低いというわけじゃない。
関数型とオブジェクト指向は直行する概念で、関数型であるからオブジェクトシステムの価値が低いというわけじゃない。
849デフォルトの名無しさん
2018/03/04(日) 20:03:49.57ID:A+6ka4SL CLOSは初心者に分かりにくい
Lisp自体もそうだけどさらに分かりにくい
Lisp自体もそうだけどさらに分かりにくい
850デフォルトの名無しさん
2018/03/04(日) 21:45:17.24ID:t2oIRDJW CLOSみたいなんじゃなくてもっと言語仕様に密着したオブジェクトシステムがあればと思う
例えばコンスセルはcarとcdrをメンバーに持つクラスみたいな
Gaucheってそうなってんだっけ?
例えばコンスセルはcarとcdrをメンバーに持つクラスみたいな
Gaucheってそうなってんだっけ?
851デフォルトの名無しさん
2018/03/04(日) 21:49:01.63ID:76y9+wl8 LispでSmalltalk実装すれば解決
852デフォルトの名無しさん
2018/03/04(日) 22:35:38.01ID:qI2WOoIZ オブジェクト志向うんぬんの空気読まずにカキコ
>>844
>こーいうクラスとかの設計の基本と言うか定石ってどうやって勉強したらええの?
LISPというよりも、どちらかというとデータベース設計が主題になるね
もし手早くSchemeで小規模なデータベースを実装したいのであれば、
SLIBと呼ばれるよく知られたライブラリに含まれている
データベースを使うのが最短だと思う
・The SLIB Portable Scheme Library
http://people.csail.mit.edu/jaffer/SLIB
日本語では、以下の書籍で文献データベースを主題として丁寧に解説されている
・入門Scheme
- Schcme入門からXツールキットを使ったリレーショナルデータベースプログラムまで
https://www.amazon.co.jp/dp/4879669547
もしLISP(による実装)を離れて一般的なデータベース設計そのものを勉強するなら、
たとえば定番の入門書(教科書)である以下の書籍の前半を読む
・リレーショナルデータベース入門―データモデル・SQL・管理システム・NoSQL
https://www.amazon.co.jp/dp/4781913903
もしLISPプログラミングに自信があり、その上で広義のデータベースとして
「LISPによる知識表現プログラミング」を習得したいのなら、
遠回りになるけどSICP本の「4.4章 論理プログラミング」への挑戦を勧める
>>844
>こーいうクラスとかの設計の基本と言うか定石ってどうやって勉強したらええの?
LISPというよりも、どちらかというとデータベース設計が主題になるね
もし手早くSchemeで小規模なデータベースを実装したいのであれば、
SLIBと呼ばれるよく知られたライブラリに含まれている
データベースを使うのが最短だと思う
・The SLIB Portable Scheme Library
http://people.csail.mit.edu/jaffer/SLIB
日本語では、以下の書籍で文献データベースを主題として丁寧に解説されている
・入門Scheme
- Schcme入門からXツールキットを使ったリレーショナルデータベースプログラムまで
https://www.amazon.co.jp/dp/4879669547
もしLISP(による実装)を離れて一般的なデータベース設計そのものを勉強するなら、
たとえば定番の入門書(教科書)である以下の書籍の前半を読む
・リレーショナルデータベース入門―データモデル・SQL・管理システム・NoSQL
https://www.amazon.co.jp/dp/4781913903
もしLISPプログラミングに自信があり、その上で広義のデータベースとして
「LISPによる知識表現プログラミング」を習得したいのなら、
遠回りになるけどSICP本の「4.4章 論理プログラミング」への挑戦を勧める
853はちみつ餃子 ◆8X2XSCHEME
2018/03/05(月) 00:38:23.33ID:Q2HqOyhm >>849
どうだろうなぁ。 初心者っていうか人によるんじゃね。
俺は JavaScript のプロトタイプベースのクソさに辟易した (実利があるのはわかってはいる) けど、
Gauche の (CLOS 風の) オブジェクトシステムにはそんなに忌避感ないし。
どうだろうなぁ。 初心者っていうか人によるんじゃね。
俺は JavaScript のプロトタイプベースのクソさに辟易した (実利があるのはわかってはいる) けど、
Gauche の (CLOS 風の) オブジェクトシステムにはそんなに忌避感ないし。
854843
2018/03/05(月) 05:06:56.57ID:HTepcGeJ みなさん、アドバイス・参考書の紹介などありがとうございます。
いろいろ自分で試してみて、どれがいいか決めようと思います。
とりあえずの方針としては、school-baseみたいなクラスの下に、studentsクラスを作って
そこにテーブル属性ごとにスロットを作って、alist形式でぶち込むことにしました。
キーの設定やら検索の便宜やら考えた結果、alistが一番手軽そうだと言うことで。
BAKAP ((taro.t) (hanako) (nagisa.t) ... )
みたいな感じで。学生を単位にデータを作ると扱いづらそうなので。
いろいろ自分で試してみて、どれがいいか決めようと思います。
とりあえずの方針としては、school-baseみたいなクラスの下に、studentsクラスを作って
そこにテーブル属性ごとにスロットを作って、alist形式でぶち込むことにしました。
キーの設定やら検索の便宜やら考えた結果、alistが一番手軽そうだと言うことで。
BAKAP ((taro.t) (hanako) (nagisa.t) ... )
みたいな感じで。学生を単位にデータを作ると扱いづらそうなので。
855デフォルトの名無しさん
2018/03/05(月) 22:58:53.34ID:uKMy0Btp オブジェクト指向的には
学生ごとにインスタンスを生成して
各属性はインスタンスのスロットに入れるのが自然な実装だろう
属性が動的に変わるなら
そこをalist/plistにするか
プロトタイプ思考のOOPSを使うといい
学生ごとにインスタンスを生成して
各属性はインスタンスのスロットに入れるのが自然な実装だろう
属性が動的に変わるなら
そこをalist/plistにするか
プロトタイプ思考のOOPSを使うといい
856デフォルトの名無しさん
2018/03/07(水) 19:56:08.11ID:YoTLFFGw 本屋に行ったらLittle Proverの和訳が出ててびっくりした
857デフォルトの名無しさん
2018/03/08(木) 00:07:13.06ID:SsdsVhWr858デフォルトの名無しさん
2018/03/08(木) 23:01:12.93ID:w9PzfbW0 またkaizenさんが和歌でレビュー書いてるのかと思った
859デフォルトの名無しさん
2018/03/11(日) 23:12:35.97ID:TCP/sl3z 教えてください。
cxmlで150mbぐらいのファイルをparseしようとしたら、
メモリのリミット来てるでーって怒られてダメでした。
巨大ファイルの扱い方教えてください。
cxmlで150mbぐらいのファイルをparseしようとしたら、
メモリのリミット来てるでーって怒られてダメでした。
巨大ファイルの扱い方教えてください。
860859
2018/03/12(月) 03:24:23.18ID:/MpQ/gxq saxとかklacksってのを使えば良いのか。
どうやっても空白を拾ってしまう。何でだ。
いろいろ頭痛い。
どうやっても空白を拾ってしまう。何でだ。
いろいろ頭痛い。
861デフォルトの名無しさん
2018/03/12(月) 17:46:56.89ID:tR8Qr250862はちみつ餃子 ◆8X2XSCHEME
2018/03/12(月) 19:42:56.53ID:wZFlYBXj >>860
空白はそのままに認識するのが XML の規約じゃなかったっけ。
空白を除去したいかどうかはアプリケーション側の裁量。
よく使われるライブラリなら何かオプションを持ってたりすることはあるかもしれんけど。
空白はそのままに認識するのが XML の規約じゃなかったっけ。
空白を除去したいかどうかはアプリケーション側の裁量。
よく使われるライブラリなら何かオプションを持ってたりすることはあるかもしれんけど。
863デフォルトの名無しさん
2018/03/19(月) 16:28:35.15ID:wWyAeyoL これがLispだ!は教科書っぽくていいな
これと実践あたりを順を追って読んでみようと思う
それからSICPにいこうかな
竹内初めてのとかLand of Lispみたいなノリの本こそLispらしいのだろうが、ついていけないと嫌いになる^^;
LittleはCPSからいきなり難しくなるし、その前も背景知識ないと消化不足になる
Yコンビネータも一応流れはつかめても、自分みたいな頭良くない初学者にはあの試行錯誤から何かを掴むのは難しい
Lispは表面的な軽さと話してることが乖離している書籍が多いし、独学者にはキツイ
これらが、同時並行的にあーなるほど、となると悟ったという事になるのかな?
これと実践あたりを順を追って読んでみようと思う
それからSICPにいこうかな
竹内初めてのとかLand of Lispみたいなノリの本こそLispらしいのだろうが、ついていけないと嫌いになる^^;
LittleはCPSからいきなり難しくなるし、その前も背景知識ないと消化不足になる
Yコンビネータも一応流れはつかめても、自分みたいな頭良くない初学者にはあの試行錯誤から何かを掴むのは難しい
Lispは表面的な軽さと話してることが乖離している書籍が多いし、独学者にはキツイ
これらが、同時並行的にあーなるほど、となると悟ったという事になるのかな?
>>863
>LittleはCPSからいきなり難しくなるし、その前も背景知識ないと消化不足になる
おっと、いつのまにか little schemer の読み込みが途絶えてしまっていた、今日から馬力をかけて、ぜひ読みきろう!
>LittleはCPSからいきなり難しくなるし、その前も背景知識ないと消化不足になる
おっと、いつのまにか little schemer の読み込みが途絶えてしまっていた、今日から馬力をかけて、ぜひ読みきろう!
865デフォルトの名無しさん
2018/03/19(月) 19:28:13.49ID:VtB6yui4 CPSも紙に書いてトレースすることはできるんだけど
見た目が難しいのにご利益があまり感じられないのは俺の頭が悪いからかな?
見た目が難しいのにご利益があまり感じられないのは俺の頭が悪いからかな?
866はちみつ餃子 ◆8X2XSCHEME
2018/03/19(月) 20:10:47.01ID:RG1qd9Pc867デフォルトの名無しさん
2018/03/19(月) 21:18:53.51ID:VtB6yui4868はちみつ餃子 ◆8X2XSCHEME
2018/03/19(月) 22:47:45.65ID:RG1qd9Pc >>867
うーん、俺も理屈をきちんと学んだわけじゃなくて CPS 変換を通して理解したんだけど、
CPS 変換しても何もつかめなかったのならどうすればいいんだろう……。
CPS は継続の理解の助けになるんだよ。
入門書で CPS 変換を取り上げるのは継続を理解させるため。
CPS 変換すること自体が普段のプログラミングですごく役に立つってわけではない。
継続ってのは call/cc で取り出せるやつってだけじゃなくて、
Scheme のプログラムでは常に背後にある。
Scheme に限らずどんな言語にも、 C にだってある。
call/cc は背後にあるのを表に引きずり出す仕組みなんだ。
だから背後でやってるやつを明示的にやったらどないや? っていうのが CPS なの。
そんだけ。
うーん、俺も理屈をきちんと学んだわけじゃなくて CPS 変換を通して理解したんだけど、
CPS 変換しても何もつかめなかったのならどうすればいいんだろう……。
CPS は継続の理解の助けになるんだよ。
入門書で CPS 変換を取り上げるのは継続を理解させるため。
CPS 変換すること自体が普段のプログラミングですごく役に立つってわけではない。
継続ってのは call/cc で取り出せるやつってだけじゃなくて、
Scheme のプログラムでは常に背後にある。
Scheme に限らずどんな言語にも、 C にだってある。
call/cc は背後にあるのを表に引きずり出す仕組みなんだ。
だから背後でやってるやつを明示的にやったらどないや? っていうのが CPS なの。
そんだけ。
869デフォルトの名無しさん
2018/03/19(月) 23:21:42.83ID:tGR5L1Pg CPS変換はCLとかelispでジェネレータの実装に使われてるよね
870デフォルトの名無しさん
2018/03/20(火) 11:33:11.49ID:U6Uv8xSd >>868
> CPS は継続の理解の助けになるんだよ。
その通り
> CPS 変換すること自体が普段のプログラミングですごく役に立つってわけではない。
まあ普通のプログラミングではCPS変換なんて必要ないわな
> 継続ってのは call/cc で取り出せるやつってだけじゃなくて、
> Scheme のプログラムでは常に背後にある。
> Scheme に限らずどんな言語にも、 C にだってある。
上の3行はもちろん間違っていないんだけれども補足しておくと、
Cなどの通常のgoto文(やCのbreak文等のような制限されたgoto文)とか例外処理を有する命令型プログラミング言語の意味論(正確には表示的意味論)を語る上でこそ継続が不可欠になる
Schemeからcall/ccを除けば(call/ccやそれを含むライブラリ手続きの類を一切使わない範囲でしかSchemeを利用しない人は)継続を使わない意味論で考えても何も問題ない
例えば、命令型言語でも制御構文としてif文とwhile文しかない(goto文やbreak文等のジャンプは含まない)言語…しばしば「While言語」とか呼んで手続き型言語の表示的意味論の
説明用としてに最初に取り上げられるミニチュア言語(一応、万能ね)…の意味を与えるだけなら継続は必要ない
そういう単純な(いわゆる「構造的」な)制御フローしか許さない言語では、個々の文(命令)の意味は状態から状態への写像(つまり文の表すものは一つの状態変換関数)として考えれば済む
goto文や例外処理のような構文に関して制御の流れが(文の構文構造について)構造帰納的でなくなる制御フローを生み出してしまうものを含んだ言語の意味論を考えようとすると継続が不可欠になる
もはや、個々の文を状態変換関数(そして個々の式を状態の集合から値の集合への一つの関数)として考えるような直感的に分かり易い意味の与え方は通用しない
表示的意味論の生みの親のStracheyが、compositionalつまり大雑把には構造帰納的に意味を与える表示的意味論において構造帰納的でない制御フローを生み出すgoto文の意味を
如何に与えるかで悩んだ末に発明した概念こそが正に継続なんだ
(因みに日本語の表示的意味論の教科書でやや古いものは“continuation”の訳語として「継続」でなく「接続」という言葉を使っている場合があるが両者は全く同じ)
> CPS は継続の理解の助けになるんだよ。
その通り
> CPS 変換すること自体が普段のプログラミングですごく役に立つってわけではない。
まあ普通のプログラミングではCPS変換なんて必要ないわな
> 継続ってのは call/cc で取り出せるやつってだけじゃなくて、
> Scheme のプログラムでは常に背後にある。
> Scheme に限らずどんな言語にも、 C にだってある。
上の3行はもちろん間違っていないんだけれども補足しておくと、
Cなどの通常のgoto文(やCのbreak文等のような制限されたgoto文)とか例外処理を有する命令型プログラミング言語の意味論(正確には表示的意味論)を語る上でこそ継続が不可欠になる
Schemeからcall/ccを除けば(call/ccやそれを含むライブラリ手続きの類を一切使わない範囲でしかSchemeを利用しない人は)継続を使わない意味論で考えても何も問題ない
例えば、命令型言語でも制御構文としてif文とwhile文しかない(goto文やbreak文等のジャンプは含まない)言語…しばしば「While言語」とか呼んで手続き型言語の表示的意味論の
説明用としてに最初に取り上げられるミニチュア言語(一応、万能ね)…の意味を与えるだけなら継続は必要ない
そういう単純な(いわゆる「構造的」な)制御フローしか許さない言語では、個々の文(命令)の意味は状態から状態への写像(つまり文の表すものは一つの状態変換関数)として考えれば済む
goto文や例外処理のような構文に関して制御の流れが(文の構文構造について)構造帰納的でなくなる制御フローを生み出してしまうものを含んだ言語の意味論を考えようとすると継続が不可欠になる
もはや、個々の文を状態変換関数(そして個々の式を状態の集合から値の集合への一つの関数)として考えるような直感的に分かり易い意味の与え方は通用しない
表示的意味論の生みの親のStracheyが、compositionalつまり大雑把には構造帰納的に意味を与える表示的意味論において構造帰納的でない制御フローを生み出すgoto文の意味を
如何に与えるかで悩んだ末に発明した概念こそが正に継続なんだ
(因みに日本語の表示的意味論の教科書でやや古いものは“continuation”の訳語として「継続」でなく「接続」という言葉を使っている場合があるが両者は全く同じ)
871デフォルトの名無しさん
2018/03/20(火) 12:19:35.96ID:GlHoGrJi 何時からこんな長文のレスが出来るようになったのかと
872デフォルトの名無しさん
2018/03/20(火) 23:23:33.89ID:+gsETVt6 >>865
簡単なスタックマシンにコンパイルしてみてはどうか?
簡単なスタックマシンにコンパイルしてみてはどうか?
873デフォルトの名無しさん
2018/03/20(火) 23:24:33.08ID:+gsETVt6874デフォルトの名無しさん
2018/03/21(水) 11:51:20.10ID:u5CZK1Hr 継続ってラムダ計算にもあるの?
875デフォルトの名無しさん
2018/03/25(日) 00:56:23.32ID:1/5marwz CPSは必ずしも再帰で使う必要はないということでいいのかな
リトルのCPSが消化不良なのは前の章までの理解が足りてないってことか
リトルのCPSが消化不良なのは前の章までの理解が足りてないってことか
876はちみつ餃子 ◆8X2XSCHEME
2018/03/25(日) 01:16:25.39ID:vqcfoPV6 再帰とは関係なく全ての計算に関わってるよ。
877デフォルトの名無しさん
2018/03/25(日) 23:02:19.40ID:wjjQa2Mo 再帰の際に、例えば階乗計算で終端条件から戻ってきて
1*2*3*.......*(n-2)*(n-1)*nと掛けられるものも継続ですか?
1*2*3*.......*(n-2)*(n-1)*nと掛けられるものも継続ですか?
878デフォルトの名無しさん
2018/03/26(月) 04:28:41.05ID:M0YORv20879デフォルトの名無しさん
2018/03/26(月) 14:01:22.69ID:YDvloqxD >>878
ああ、その説明は見事ですね
ああ、その説明は見事ですね
880はちみつ餃子 ◆8X2XSCHEME
2018/03/26(月) 14:19:29.21ID:S9VCdiyC C ではアドレスが継続だと思えばだいたい合ってる。
環境が保存されないから Scheme より限定的だけども。
C だと実引数と一緒にリターンアドレスもプッシュするじゃん?
それと同じように Scheme でも戻ってくる継続を暗黙に渡してるんだよ。
Scheme の call/cc は gcc 拡張の __builtin_return_address みたいなもん。
環境が保存されないから Scheme より限定的だけども。
C だと実引数と一緒にリターンアドレスもプッシュするじゃん?
それと同じように Scheme でも戻ってくる継続を暗黙に渡してるんだよ。
Scheme の call/cc は gcc 拡張の __builtin_return_address みたいなもん。
881デフォルトの名無しさん
2018/03/26(月) 16:22:01.20ID:4JGFggle 俺Cわかんないんだよね^^;
882はちみつ餃子 ◆8X2XSCHEME
2018/03/26(月) 16:54:52.93ID:S9VCdiyC そっか〜
883デフォルトの名無しさん
2018/03/26(月) 20:38:59.41ID:4JGFggle884デフォルトの名無しさん
2018/03/26(月) 22:41:49.50ID:5QVYm+SC Cで継続を保存しようとしたら、setjmpで保存してるもの(全レジスタの状態)とスタックの内容のコピーだろ(場合によってはかなりのサイズになるが)
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★8 [BFU★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 高市首相が異例の“買春行為の罰則化の検討”に言及…世界では“買う側”に罰則を科すのが先進国のスタンダード ★2 [樽悶★]
- 植田日銀総裁 「円安進行が物価高を起こしている」 ★4 [お断り★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 【STARTO ENTERTAINMENT】timelesz、メンバーの不適切言動を謝罪「不用意かつモラルに反した発言であった」 全員の署名入りでコメント [Ailuropoda melanoleuca★]
- 【ガチ正論】一般人「中国に規制制裁されて、『中国ムカつく』じゃなくて矛先が『許さんぞ高市』になってる奴、頭おかしいの?」 ★2 [153490809]
- 鼻糞の残糞感がずっと消えない
- 陸上自衛隊員(43)逮捕 赤坂ライブハウスの出演女性刺傷 殺人未遂容疑 [377482965]
- 【ぺこ専🐰】なんG 兎田ぺこら突発配信実況スレ🏡【ホロライブ▶】
- NHKニュースウオッチ9「日本側は対話にオープンな姿勢で安定した日中関係を築きたい考えなのに中国が意固地で糸口が見いだせない」 [904151406]
- 日中戦争起きたら5日で自衛隊壊滅するらしい。じゃあ徴兵も無いし、俺等が必死になって反対してやる理由なくね? [237216734]
