- 1 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 17:58:58.06 ]
- Common Lisp、SchemeをはじめとするLisp族全般のスレです
■前スレ Lisp Scheme Part32 hibari.2ch.net/test/read.cgi/tech/1303299696/ ■テンプレ wiki.fdiary.net/lisp/ ■関連スレ 【入門】Common Lisp その8【質問よろず】 hibari.2ch.net/test/read.cgi/tech/1309940115/
- 944 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 02:08:36.17 ]
- その前にJavaって関数内関数を定義できたっけ?
その関数内だけでよく使う手続きが、関数の外に宙ぶらりんになってるの見るとイラッとくるよね(´・ω・`)
- 945 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 02:09:05.31 ]
- >>887
CTMを思い出した。そのパラダイムを実現するための ギリギリ最小の構文は何かという観点から、 宣言的プログラミングに始まり、構文を少しずつ付け足して世界を広げていく本 記述はOzとかいう言語で、同じような話をLispでもできるだろうけど、 Lispで行うべき必然性もないような気がする
- 946 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 08:04:58.59 ]
- >>943
C#3.0「ラムダ式があれば匿名メソッドなんていらんかったんや……」 C++11「Javaはラムダ式見送ったの?俺もう入れちゃったんだけど」 ECMAScript5「俺はまだ本当のラムダ式を導入していない、この意味が分かるな?」
- 947 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 08:39:32.65 ]
- >>855
きちがいは下手下手連呼せずに黙ってろ
- 948 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 09:02:00.45 ]
- >>947 反論できなくなると黙ってろしか言えない馬鹿は死ね
- 949 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 11:56:44.56 ]
- >>944
おれもCやC++使うとき、関数内関数が書けなくてイラってするときがよくある。 昔CかC++で関数内関数を書いた気がしたんだがきのせいだったんかな(笑
- 950 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 11:58:49.49 ]
- GCC拡張じゃないの
- 951 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 12:20:11.55 ]
- >>949
Pascalならあったな
- 952 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 12:25:25.15 ]
- 最近はclangならblocksっていうのがある。
- 953 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 12:50:56.14 ]
- >>949
C++なら関数内structでstatic関数定義すればいい。
- 954 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 12:56:42.89 ]
- >>953
それはやったことあるけど、書くのもアクセスするのも面倒だよなー(笑
- 955 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 13:02:43.07 ]
- struct xxx{static }
書くときに増えるのは20文字。呼び出しで増えるのは4文字。 それを面倒といわれても。 名前なしで定義できないのは確かに面倒。 名付けに必要なエネルギーはbodyを書くそれを上回ることが多い。
- 956 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 13:09:29.92 ]
- > 書くときに増えるのは20文字。呼び出しで増えるのは4文字。
書くときに増えるのは20文字。呼び出しで増えるのは5文字。
- 957 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 15:09:51.28 ]
- >>953
こいつでC++コードを生成すればいいだろ www.suri.cs.okayama-u.ac.jp/servlets2/scm2cpp.rkt
- 958 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 18:05:36.22 ]
- 最近meta circular evaluator絡みでは、
Javascript/SpiderMonkeyのRiverTrail拡張が面白かった。 Lisp, Schemeの言語拡張だと、Racketの#langがアドホックだけど面白いね。 このスレではRacketを酷評する人もいるけどw
- 959 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 21:05:59.20 ]
- >>958
Racketは独自の道を歩んでいる感がなぁ(大抵のlisp族はそうだけどさ)
- 960 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 21:15:04.79 ]
- Racketって日本語の扱いはどんな具合なの?
- 961 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 23:40:50.41 ]
- >>960
データの処理はUnicodeの範囲で標準でサポート。iconvを利用できるので、 エンコーディングの変換もほぼ問題ない。 docs.racket-lang.org/guide/encodings.html docs.racket-lang.org/reference/bytestrings.html UIについては全部英語だったと思うけど、Racketになってからは触ってないので知らん。 聞くよりは試した方が手っ取り早いと思う。
- 962 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 09:24:20.85 ]
- 愛昆布
- 963 名前:デフォルトの名無しさん [2012/01/28(土) 11:52:11.03 ]
- Schemeでclisp位の機能を持った処理系は有りますか?
Racketは高機能すぎてもう少しシンプルなのがよいのですが・・・ guileやgausheはタブコンプリーションや矢印キーが使えなくて使い難いです。
- 964 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 12:23:14.04 ]
- >>963
それは処理系の機能というより環境の話だなあ。 gaucheなら、Emacsで誰かが補完つきのgauche-modeってのを書いてた気がする。 矢印のヒストリならコマンドラインでrlwrap使ってもいいし。 swankは誰か書いてたっけ? まあ、そういうのを自分で揃えなくちゃならないのが面倒ってのはわかる。
- 965 名前:963 [2012/01/28(土) 13:22:32.06 ]
- rlwrapをインストールしてみましたがこれは便利です!
有り難う御座いました。 emacsだと便利な機能は豊富そうですがemacsは使っていませんし、此れだけの為にインストールしたくありません。
- 966 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 14:11:04.32 ]
- >>963
guile1系とgaucheを使えばいいいんだよ。
- 967 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 14:46:34.09 ]
- readlineをwrapすればいいんだよ
- 968 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 15:04:53.75 ]
- windowsでschemeのパーサー機能を利用したプログラムを配布したいです
clispならこうするようですが stackoverflow.com/questions/25046/lisp-executable schemeでexe化できるのはありますか?
- 969 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 15:22:44.60 ]
- Chickenかbiglooが便利。
gaucheでもgauche-statifierを使えば一応は出来る。
- 970 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 16:24:19.87 ]
- >>965
rlwrap gauche でぐぐれば、gaucheの関数名補完できるようにする方法も出てくるよ。
- 971 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2012/01/28(土) 17:03:30.76 ]
- >>968
exe って言うからには Windows での話ってことでいいのかな。 Gauche のソースコードの中にある mingw-exify が使えると思う。 これは見ればわかる通りコードを文字列のまま埋め込むだけのものなので期待しているものかどうか。 gauche.git.sourceforge.net/git/gitweb.cgi?p=gauche/Gauche;a=blob_plain;f=src/mingw-exify;hb=HEAD Windows では gauche-install や gauche-config 等が exe になってないと使い勝手が悪いので用意したということみたい。 ライブラリをプリコンパイルするための機構である precomp を使う方法もある。 gauche.git.sourceforge.net/git/gitweb.cgi?p=gauche/Gauche;a=blob_plain;f=src/precomp;hb=HEAD これは C のコードを生成するのでそのまま gcc 等でコンパイルすることは出来る。 (C のコードと言っても Gauche VM 用のバイトコードが形式として C になるだけ。) どちらの方法でも VM やライブラリの結合までは面倒見てくれない。 exe 化というのがどの程度のことを期待しているかにもよるけど、 今のところコマンドひとつ、関数ひとつで全工程をやってくれるような都合の良いものは無い。 Gauche のソースコード自体をいじることも含めればどんなことでも出来る可能性はあるわけだけど、 それが出来るくらいならこんなところで訊きもしないだろうしなぁ。 自分が作ったプログラムに必要な部分をピックアップして同梱するのが手っ取り早い配布方法じゃないかな。
- 972 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 17:21:13.49 ]
- >>969
ありがとうございます。 gnupackのcygwin経由でchickenをインストールし www.h7.dion.ne.jp/~samwyn/ChickenDoc/Getting%20started.html にしたがってcsc -o palindrome palindrome.scmとしたら実行バイナリができました ですが、chickenを入れていないパソコン用に 静的リンクしたスタンドアロン型実行バイナリを作ろうとして csc -o palindrome -static palindrome.scm とすると gcc: /usr/bin/libchicken.a: no such file or directoryとなります 調べたら/usr/lib/libchicken.aがあったのでこれを使うようchickenのコンパイラに伝えたいのですが www.h7.dion.ne.jp/~samwyn/ChickenDoc/Using%20the%20compiler.html を見てもどう設定するかわかりませんでした どうすればよいでしょうか
- 973 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 17:27:11.38 ]
- >>971
はい。windowsを想定してました。 そうなるとcのコードで書き出してgccでexe化することが 無難かと思うようになりました。
- 974 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 17:38:20.72 ]
- >>972
マニュアルの「コンパイラの使い方」の中の「生成された C ファイルを配布する」の節。 Cのソースを吐かせて、gccでコンパイル。
- 975 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 17:41:53.68 ]
- >>974
そうするしかなさそうですね。ありがとうございました。
- 976 名前:963 [2012/01/28(土) 17:44:10.34 ]
- >>970
関数名補完も出来る様になり凄く便利に成りました。 有り難う御座いました!
- 977 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 18:21:35.65 ]
- >>975
ごめん、-L<DIR> でcscに直接渡せるっぽい。 www.h7.dion.ne.jp/~samwyn/ChickenDoc/csc.html chickenはドキュメントがそれなりに揃っているのに、リンクや参照が悪いんだよな。 マニュアルもチュートリアルで検索に不便だから、何とかならないものか。
- 978 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:05:24.39 ]
- slimeみたいにタグジャンプをschemeでもしたい
- 979 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:20:52.13 ]
- gambit-c もcを生成してくれるな
- 980 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:37:17.44 ]
- 次
Lisp Scheme Part34 toro.2ch.net/test/read.cgi/tech/1327819028/
- 981 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:39:53.88 ]
- 大儀であった
- 982 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:24:23.00 ]
- racketもバイナリ吐いてくれるな
- 983 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 09:50:35.68 ]
- >>977
キーワード site:wiki.call-cc.org/manでググる
- 984 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 10:42:52.41 ]
- gaucheって日本語も普通に使えるけど、日本語のsymbolもeq?で判定出来ますよね?
- 985 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 11:14:16.69 ]
- >>983
ググれば出るけど、マニュアルはもっと構造的に作るべき。 無いと思って調べなかった機能が別のページで見つかったりする。
- 986 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 16:13:42.46 ]
- ここじゃなくて開発者の目の届く場所で指摘するべき
- 987 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 00:47:34.95 ]
- SICPの時代は Pascal < Scheme だったようだが結局両方駄目になりそうだ
争いは同じレベルの者同士なんだな
- 988 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 01:06:59.30 ]
- >>987
くわしく
- 989 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 01:40:00.84 ]
- 易しくするのが教育だと思ってるような教育用言語は駄目だ
- 990 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 02:23:12.02 ]
- >>987にはPascalのどこが駄目だったかわかるまいな
- 991 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 03:29:24.98 ]
- どこがダメだったかと言われると、
なかなか難しいかもしれない
- 992 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 03:40:50.07 ]
- C言語に似せればPascalはまだまだいけるよ
- 993 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 06:24:04.59 ]
- プリプロセッサマクロを駆使した、Pascal に似ている C言語なら、見たことがあるなぁ…。
- 994 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 11:44:42.80 ]
- >>993
それをCだからメンテしてっていわれたときは死んだわw
- 995 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 12:57:36.93 ]
- ようやっとLisp慣れしてきたらxml系のマークアップが苦痛になってもうた
なんであんなめんどくさい書式なんじゃー! ;;;と絶叫したくなったので書いた、ちょっとだけ反省している
- 996 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 13:04:56.69 ]
- VisualStudioみたいな自動補完環境がないとxmlみたいなものは無理
- 997 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 13:59:32.26 ]
- マークアップが多いのではなく
少ない生データを無駄に水増しするマークアップが苦痛だ
- 998 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 14:09:17.74 ]
- sxmlで書いて変換するんだ。何バレやしないさ。
- 999 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 14:42:31.08 ]
- ((lambda(x)(x x))(lambda(x)(x x)))
- 1000 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 14:44:19.45 ]
- その後のメンテを考えるとねぇ……
- 1001 名前:1001 [Over 1000 Thread]
- このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
|

|