1 名前:uy mailto:sage [2012/05/09(水) 00:31:27.68 ] 最強のLL=軽量プログラム言語は、どれよ? エントリーは、Perl、PHP、Python、JavaScript・・・ さあ、死ぬまで語りやがれ!!! ■LLとは? 軽量プログラミング言語(Lightweight Language,LL)とは、取り回しに優れ、 コードの作成や修正が容易と見なされるプログラミング言語のことを指す。 ここでいう「軽さ」はプログラマの負担の軽重を指し、 実行速度に優れているという意味ではない。 現在の水準では ・インタプリタ ・動的型 ・正規表現 ・クロージャ などを利用できるものがLLと呼ばれることが多い。(Wikipediaより) 前スレ 【Perl,PHP】LLバトルロワイヤル21【Ruby,Python】 toro.2ch.net/test/read.cgi/tech/1330003774/
132 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 20:23:27.30 ] Railsの黒魔術って、メタプログラミングに強いRubyならではのものなの? Pythonで同様の黒魔術って(可読性重視の文化は別として)できるものなんだろうか? 教えてエロイひと
133 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 22:07:39.69 ] >>132 Railsの黒魔術ってなにをいってるの? 自動でいろいろ作ってくれることを指してる? なんでメタプログラミングの話がでてくるのかさっぱりわからない。 CoC 設定より規約 (Convention over Configuration)になってるから 自動でいろいろ作ってくれるだけでしょ Railsに影響を受けたFrameworkはたくさん出てるんだから、 Ruby系でも、PHP系でも、Python系でも、Java系でも 使いやすいの選べばいいんじゃないかな Python系のDjango人気あるようだよ。Railsより高速だし。 Frameworkネタは専門スレのがいいっぽい ここはWebアプリ関係ない人が多いようだから。
134 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 22:12:54.55 ] フレームワーク系スレ張っておく 【Python】Python Webフレームワーク総合スレ kohada.2ch.net/test/read.cgi/php/1329996601/ 【RoR】Ruby on Rails Part14 kohada.2ch.net/test/read.cgi/php/1329492840/ 【PHP】PHPフレームワーク総合スレ15 kohada.2ch.net/test/read.cgi/php/1292118428/
135 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 23:22:38.41 ] >>133 「Railsの黒魔術」で検索した結果。一般にどういうことを指しているか。 www.slideshare.net/tmtm/ruby-3424591 メソッドが実行時に生成される。クラスが実行時に生成される。 パース時ではなく実行時オープンクラス、既存のクラスを変更できる。 特異メソッド。演算子もメソッド。クラスもオブジェクト メソッドも動的に生成。定数の動的取得 文字列からメソッド呼び出し。 クラスが継承された時に実行されるメソッド メソッドが存在しない時に実行されるメソッド メソッドが追加/削除された時に実行されるメソッド クラスの祖先を調べる オブジェクトにメソッドがあるか? 世間一般にはこういうことを黒魔術と呼びます。 さて、世間の常識で話を進めましょうか?
136 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 23:23:51.20 ] ふしゅるるる
137 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 23:36:20.94 ] >>132 Rubyでのいわゆる黒魔術は eval系メソッドとリフレクション(の組み合わせ)を指すことが多い これら自体は割とどんなスクリプト言語でも使える
138 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 23:38:14.68 ] >>133 DSLとかリフレクションが強力ってのじゃないの? Pythonもわりとなんでもできるけど 隠れた仕組みで標準じゃない動作をさせたりするのは違和感がある。個人的に。 そういうのは明示的にアノテーションでなんとかさせたい。
139 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 00:32:35.51 ] >>135 そのslideは、「Ruby」についてのものだろう? 132は「Railsの黒魔術」といっていたんだぞ? RubyとRailsをごっちゃにしてる人にコピペされても。
140 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 00:40:56.70 ] >>139 ちゃんと読め。 Railsで使われてる黒魔術だ。 RailsがRubyで書かれてるんだから 黒魔術のコードがRubyになるのは当たり前。
141 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 00:52:31.54 ] Railsの黒魔術というとActiveRecordだけど、 あれの、動的にアクセッサができるって意味ないよな。 静的でいいじゃんって思う。 たとえば、カラム名nameってのがあったとして、find_by_nameが 動的に作られるって言うけどさ、その場合、find_by_nameを 使ったコードがすでに書いてあるわけだろ? 実行する前からnameってカラムがありますってわかってるわけじゃん? nameってカラムがあるのがわかってるから、find_by_nameを呼び出しますって コードに書くわけじゃん? 実行前にわかってる、つまり静的でいいよね?
142 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 01:07:42.60 ] できることよりコードが少なめruby できることよりコードが多めjava
143 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 01:14:00.06 ] >>140 間違ったからって強引な屁理屈こねるのはやめろw 現状、Rubyが実質Railsくらいにしか使われてないから、 Ruby=Railsな印象があるのは認めるけど、あくまで別物。 RubyはRuby。言語。 RailsはRails。フレームワーク。 黒魔術なんて誰が言い出したのかしらんがアホっぽいね。 ソースみればなにやってるか、どうなってるか理屈わかるのに なにが魔術なんだか
144 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 01:14:52.71 ] >>141 Rubyは実行時に決まることが多いので、それに合わせた方が問題が少ない。 DB叩いてみないと name というカラムが本当にあるかはわからない。 SQLiteのインメモリデータベースのように、テーブルやカラムも実行時に作成している場合もあるからね。 あるいは、ビューを実行時に作って使い捨てたりとか。 それに、find_by_nameも自分で定義したメソッドかも知れないし、 他のライブラリが定義したメソッドかも知れない。 ActiveRecordの場合は、DBが情報持っているのだから、 アプリ側で静的な定義をすることで同じ情報を二重に持っている必要はないよねという考えでもある。
145 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 01:15:55.19 ] >>141 データベースに接続するのは実行時だから カラム名やらを静的には把握できないでしょ 脳内で分かってるのはプログラマだけ
146 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 01:53:59.07 ] >>144 >>145 いや、だからさ、何が便利なわけ? コード上に、find_by_name()書くでしょ? これはもうファイルに保存されてるよね? DB叩いてみてフィールドがなければこのコードはエラー起きるよね? それは動的も静的も変わりないよね? 何か間違ってる?
147 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 02:34:44.79 ] 無くなってもそんなに困らないけどあった方がスムーズに書ける機能だとは思うな find_by_name("tom") find.where(:name => "tom") 上の方がよくない? あと昔はwhereが無くてもっと長く書かないといけなかった
148 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 02:37:39.23 ] もっと長く書いてみて
149 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 02:47:57.96 ] スマホなんで勘弁してくれ conditions時代だよ
150 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 03:21:37.08 ] >>147 だから、find_by_nameを静的に作ればいいだけでしょ? コードジェネレータをコンパイル時に自動実行するだけ。
151 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 03:22:42.57 ] 俺が言いたいのは、DBのアクセッサ生成は 静的でできることだよね。ってこと。
152 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 04:05:47.05 ] Railsの話題はRailsスレへ。 >>134
153 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 06:38:02.72 ] 結論 Rubyは黒歴史
154 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 09:13:27.45 ] perlは前世 rubyは黒歴史 pythonは理想郷 schemeは宗教 javascriptはルネサンス
155 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 10:19:53.17 ] >pythonは理想郷 kwsk
156 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 10:43:44.63 ] インデント強制から何故かfateのタイトルを思い出したので
157 名前:uy mailto:sage [2012/05/17(木) 12:09:35.46 ] >>135 世間一般でそれを「黒魔術」と呼ぶのは言語側がその機能を提供してないから 黒魔術によって優秀な()プログラマが、勝手に機能を作っちゃうって事だろ その時に書かれたコードや、内部の動作は黒魔術だけど constants ancestors variables methods define_method など、メソッド呼び出すだけで、他言語では黒魔術使わない限りできないような事が最初から出来るようになっているならば 黒魔術とはいわず優れた処理系というべき method_missingをPHPで実装して使ったら黒魔術だけど、 Rubyでmethod_missingを使うのは別に黒魔術ではないと思う つうか毎日使ってたら魔術()とか思わないし、慣れればただの自分の技術
158 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 12:12:55.48 ] 魔法も魔術も毎日使うよ
159 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 12:54:57.31 ] method_missingをよく分かって使うのは結構なんだが、乱用は良くないから 黒魔術と呼んで抑制することは悪くないとは思う。 モンキーパッチと呼ぶのも同じように思ってる。
160 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 13:00:24.55 ] 黒魔術と言うからには何か害があるのか?
161 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 13:06:29.29 ] >>160 あまり動的な変更をやり過ぎると把握し辛くなるね 組み込みクラスの挙動とか弄ったりされると Ruby使いでも注意深く読まないと挙動が読めなくなる
162 名前:uy mailto:sage [2012/05/17(木) 14:23:24.77 ] 常識的に考えて(AA略) ヤバイと思う事は出来てもやらないのが、Rubyでソースコードをかける最低ラインだと思う module Kernel def print *h puts "うぇwっうぇww" end end print "test message"
163 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 14:43:45.49 ] インタプリタ言語でありながら解読されにくいプログラムを書けるってこと
164 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 18:05:11.67 ] 糞読みにくいコードを書いて悦に入ってる奴は死ねってことなら同意。 一人で作って永久にお前がメンテするなら良いけどな。 Perlユーザーに多いんだよな、糞読みにくいコードをドヤ顔で書く奴。 俺がPythonを推すのは、こういう輩が絶滅して欲しいから。 自分の書いたコードを黒魔術、とか自慢げにいう奴は一生一人で誰にも迷惑をかけずに作ってろ。
165 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 19:00:17.24 ] >>157 にあるいくつかのメソッドで、Pythonにはないメソッドはどれだろう 逆にPythonのinspect.getargspec(?)のような、メソッドの引数を調べるメソッドは、 Rubyにはないのかな
166 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 19:04:24.54 ] >>164 まるで「Pythonじゃどうやっても読みやすいコードしか書けない」みたいな言い方だが 本当にそうなのか?
167 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 19:21:21.62 ] >>166 そこまでの拘束力はないけど、そういう風習・土壌があるから書かない。 PerlでもRubyでも冗長に書けば見通しよくできるけど逆に変態扱いされる。
168 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 20:07:57.26 ] Perlはもう数年前から読みやすいコードを書こうって方向にシフトしてるじゃない >>165 こんなのがあるらしい >>> def foo(a, b, c); end >>> method(:foo).arity #=> 3
169 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 20:19:45.27 ] Method#parametersの方がいいかも
170 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 20:31:28.35 ] >>> def bar(x, y, *z, &r); end >>> method(:bar).parameters => [[:req, :x], [:req, :y], [:rest, :z], [:block, :r]] おお、ほんとだ
171 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 21:26:59.96 ] >>168 >>169 thnx Method#parametersは1.9.2からみたいですね 1.8.7では駄目でした
172 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 21:29:49.26 ] Rubyはカス言語だなあ
173 名前:uy mailto:sage [2012/05/17(木) 22:24:40.98 ] for i in "a".."c" $nn ||= ( puts "1回だけ処理したい" true ) p i end そんな事より、こんな風にループのブロックに入ったときに 最初の1回だけ処理するっていうのを簡単に書ける言語ってないの?
174 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 22:33:15.02 ] breakで抜ければいいんじゃないか
175 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 22:35:56.13 ] >>173 最初の1回は必ず実行するループは、 Do - While 系のループとしてよく見るけどな Rubyにはないの?どんな言語にもありそうだけど。 そもそも回数が未定のループでforを使うほうが変じゃないの。 forは基本的に、回数がわかっている時に使うものだと教えられた。 ufcpp.net/study/csharp/st_loop.html ここの、[do-while 文]、のところのようなやつ。 Javaにも同様のあったはず do 繰り返したい文 // 条件式が真の間繰り返される while(条件式); do-while 文は while 文と異なり、最低1回は文が実行されます。 つまり、while 文は条件式の評価を行ってから文を実行するのに対し、 do-while 文は文を実行してから条件式を評価します。
176 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 22:41:30.30 ] >>175 そうじゃなくて、uyが言いたいのは 最初の一度だけ代入、みたいな処理だと思う Ruby の ||= の動作ちゃんと解ってりゃ 同等のものが if で簡単に書けるのは当たり前の話なんだが…
177 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 22:49:24.85 ] stackoverflow.com/questions/136793/is-there-a-do-while-loop-in-ruby ふーむ
178 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 22:51:21.37 ] lispのloopなら
179 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 23:34:14.91 ] C言語 for (i = 0, puts("hoge\n"); i < 10; i++) { }
180 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 23:37:02.08 ] putsなのに\nを指定してるあたりプロだな
181 名前:uy mailto:sage [2012/05/17(木) 23:59:59.32 ] >>175 ちょっと違う >>179 それじゃダメなんだ イテレータというか { } のブロック内でやりたい時がある >>177 なんか英語だけど俺と同じことで悩んでる奴らかそれ
182 名前:uy mailto:sage [2012/05/18(金) 00:22:51.09 ] class Array def uy_each c = yield self.first if c.class == Proc self.each do |m| c.call m end else self[1..-1].each do |m| yield m end end end end [5,6,7].uy_each {|o| p o ->o{ p o }} ["5","6","7"].uy_each {|o| p o } 英語サイトに人に感化されてこんなのを考えてみた
183 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 07:00:22.30 ] なんで、どの言語も変な癖を入れるんだろ PHPでいいじゃん
184 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 08:06:34.23 ] PHPに癖がないとでも?
185 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 09:59:57.70 ] PHPは関数の名前に一貫性がないあたり、癖があるとおもうけどな。 Microsoft OfficeのExcelとかAccessが同じような内容の関数が別名で それぞれ覚え直さないといけないというのに絶望したよ。PHPにはそれを感じる。 あと、バージョンによって挙動が異なる関数とかもめんどくせぇ。 PHPがそれなりにWeb開発言語として有用だった事は認めるが いい加減役目は終わらせるべきだと思うね。
186 名前:uy mailto:sage [2012/05/18(金) 10:13:57.68 ] 名前の一貫性とかの前に www.php.net/manual/ja/class.recursivefilteriterator.php こんな言語でよく頑張るなと感心する PHPでプログラミングできるって才能じゃね
187 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 10:20:57.13 ] AccessはMSが他社から買収したんだっけ? PowerPointは買収だった気がする
188 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 12:11:39.81 ] PHPerはイテレータなんて難しい概念は理解出来ないからおk それにしても酷い実装だなぁ、これw
189 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 12:24:51.69 ] 後方互換性を切り捨てて命名規則に一貫性が出ないものか 移行には適当なトランスレータでも作ってさ 言語の便利な機能は良いけれど,それサバンナでも同じこと言えるの?
190 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 12:42:23.84 ] PHPはイテレータはおろか、SPLを使ってる奴なんて、全世界で1000人もいないと思うぞ
191 名前:デフォルトの名無しさん mailto:uy [2012/05/18(金) 13:49:59.25 ] ぺちぱ
192 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 14:23:49.05 ] Visioも買ってきたものだね
193 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:14:48.76 ] >>186 PHPにeach系のイテレータないのかと思ってみてみたが、 「foreach ループを終えた後でも、 $value は配列の最後の要素を参照したままとなります。 unset() でその参照を解除しておくようにしましょう。 」 と警告がかいてあった。 ありえなくないか? 簡単にかけるからイテレータがあるのに、unsetしろ、とかwww www.php.net/manual/ja/control-structures.foreach.php Webにしか使えないしPHPはほんとウンコだな スクリプト言語ならPythonかRuby。
194 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:06:55.93 ] ブロックスコープないんだねぇ。。。
195 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:09:21.08 ] JSもブロックスコープないな。 それから、イテレータから(例外みたいな大道具なしで)サクっと抜け出す機能は、 後付けするのが難しい。JSでもそんなわけで結局イテレータが使えないことが よくある。
196 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:38:33.69 ] Ruby最強か
197 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 22:16:32.35 ] えっ
198 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 22:51:50.24 ] >>193 ブロックスコープとかあまり関係ない。 $a = new MyObject(); unset($a); ← こうしないと$aは解放されないってだけ。 普通はfunctionの中で使う。 もちろんローカル変数は関数が 終わったら解放される。 言い換えるとグローバル変数は使うなってだけ。
199 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 02:22:06.31 ] 最近はpythonばっかりでほとんどruby使わなくなったけど イテレータ周りはrubyが本当に優秀だなと思う イテレータが入れ子になっても可読性落ちないよね
200 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 02:49:38.50 ] Rubyは処理したいオブジェクトを何でも先に書いちゃうのが直感的でわかりやすい aaa.to_i とか aaa.each do ~~ とか あとifの後置なんかもそうだよね オブジェクトファースト記法とか勝手に命名してる 適当で横着な書き方をしてもそれなりに綺麗なコードになるのは凄いと思う Rubyの書きやすさに慣れちゃうとPythonですら書いててたまにイラッとくるし、 JSやらPerlぐらい汚いとアルコールでイライラを抑えないととてもじゃないけどやっていけないレベル PHP?キーボード20個ぐらいオジャンにしたわセミコロンとかうぜーよ意味ないだろあれ
201 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 02:56:04.96 ] 受刑者にRuby覚えさせて出所後の社会復帰を助けるっていうプロジェクトあったじゃん あれの支援を受けた受刑者が出所後に採用された会社でPHPやらされて、 破綻した言語仕様に発狂して飲み屋で暴れて塀に逆戻りっていうエピソードもまんざら冗談じゃないなって思ったよ まあそれくらいRuby凄いってことですわ ほんと半端ないっすよRuby
202 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 02:59:44.06 ] まさか……自己紹介……
203 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 06:15:45.68 ] >>198 それは問題じゃない 要素への参照を受け取る時は気をつけないとハマるぞと警告している foreach ($list as &$item) {} # $list = array(1, 2, 3); $item = 99; # $list = array(1, 2, 99);
204 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 09:51:03.80 ] >>203 それ見事にはまったことあるわ。 スコープのウンコさと参照のウンコさの合わせ技。 自分がやったのは単純な代入じゃなくてこんなんだった: foreach ($list as &$item) { ... } ... foreach ($list as $item) { ... }
205 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 10:15:01.96 ] int i; for(i=0; i<10; i++) { if(・・・) break; } if(i == 10) { printf("全部終わった"); } else { printf("途中で終了"); } これみたいなもんだろ? 変数がどこで宣言されてるか、考えましょうってだけの話じゃんか。
206 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 10:17:04.63 ] >>203 > 要素への参照を受け取る時は気をつけないとハマるぞと警告している ん? unsetの話だろ。 お前の話だと、 $list = unset か array(1, 2, unset) になるぞ。
207 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 10:55:44.77 ] phpにunsetなんて値はねえよ
208 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 11:12:27.28 ] >>201 60%の人間はプログラミングの素質がない cpplover.blogspot.jp/2012/05/60.html
209 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 11:21:35.02 ] やべーmongrel殺しちまった 弊社のエブサービスが死んでしまって糞客に文句垂れられるかもしれんが、 そんなことはない、ログに残っていないで突っぱねよう 信頼、安全、安心のmongrelでございます、お客様。 やっちまっただよ 徹夜明けでの自宅での仕事はミスが多いね 来月からは会社で仕事しよう
210 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 11:22:24.63 ] 読んでみたけど何を言わんとしてるのかサッパリわからなかった
211 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 11:22:46.85 ] >>208 ね
212 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 11:30:09.70 ] プログラミングは一を聞いて十を知る人向けのものだってことだろう >>209 よくわからないけどとりあえずエブ鯖板にタレコミにいってくるお
213 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 11:31:36.51 ] >>209 ごちゃごちゃ言う前に鯖起動しなおしたの?
214 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 11:37:55.63 ] >>210 自分の頭で考えられない奴、論理を自分の都合で変える奴は プログラマに向かないっつー話。
215 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 12:27:10.15 ] >>214 くだらないブログをうのみにしないいで 自分の頭で考えましょう。
216 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 12:33:00.35 ] このスレの頭でっかち君たちのほとんどが60%の方に当てはまったんだろうな
217 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 12:34:57.97 ] とういうふうに、論理を自分に都合よく変えてみた。
218 名前:214 mailto:sage [2012/05/19(土) 13:24:20.38 ] >>215 プログラミング初めて30年近いから、 適正とかどうでも良いいやって感じ。
219 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 13:47:22.54 ] >>215 ブログをコピーしなくても、なぜか同じ考えに到達できる人もいるよ コピーしないと空白になる人やコピーしないとランダムになる人にはそれが分からない
220 名前:uy mailto:sage [2012/05/20(日) 13:07:45.79 ] ソース整理してたら昔ruby-tk-sdlで作ったサウンドプレイヤーでてきたので貼り require 'tk' require 'sdl' music = nil SDL.init(SDL::INIT_AUDIO) SDL::Mixer.open etr=TkEntry.new etr.pack btnSet=TkButton.new btnSet.text = "File Select" btnSet.command{ etr.value = Tk.getOpenFile music = SDL::Mixer::Music.load( etr.value ) } btnSet.pack root = TkRoot.new { title 'sound_player' } sstr = %w!再生 停止 一時停止 再開 終了! sfunc = [ lambda do SDL::Mixer.play_music(music,1) end ,# 再生 lambda do SDL::Mixer.halt_music end , # 停止 lambda do SDL::Mixer.pauseMusic end , # 一時停止 lambda do SDL::Mixer.resumeMusic end , # 一時停止を再開 lambda do exit end ] sstr.each_with_index do | str , i | button = TkButton.new button.text = str button.command = proc { sfunc[i].call } button.pack 'side'=>'left' end Tk.mainloop
221 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 18:48:21.69 ] なにがしたいの?
222 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 19:05:05.17 ] gistでやれ
223 名前:uy mailto:sage [2012/05/20(日) 20:02:33.74 ] このスレでソースあげないで何すんの? 他言語使いの奴が>>220 を他言語でさらに短く実装する流れにならないのはなんで? このスレ何がしたいの?
224 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 20:26:56.76 ] お題なら他の言語を使ってる人でも答えやすくしてからでないと 突然>>220 貼ってもみなさんポカーンでしょ
225 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 21:10:07.87 ] >>220 のソースコードの著作権は2chに帰属することとなりました
226 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 22:29:20.72 ] 24歳、彼氏イナイ歴24年。 生まれて初めてモテた。 始めは罰ゲームでもしてんのかと思って拒絶していたら、 毎日花を一輪くれるようになった。 1ヶ月くらい続いて、 ちょっと本気かもしれないと思い始め、一緒に食事に行っ たりした。 前から告白されていたのをずっと断ってたけれど、次に言 われたら受け入れようと思った。 食事の帰りに雨が降って、生まれて初めて男性を家に入れた。 「若いのにすごいね〜、持ち家なんて」 と言われたので、 「いいえ、両親から相続したんですけど、相続税のほうが高くて、 一生借金返済生活なんですよw」 と言った。 すると彼はやおら生まれてからの生い立ちを話し始めた。 物心つかない頃に両親に捨てられたらしい。里子として 今の里親のところに幼児院から出されたんだって。 彼の話を聞いていて私も涙が出てきて一緒に泣いた。 彼がひとしきり話した後、私も今までの想いが溢れ出 てきて彼に全部話しちゃった。お父さんお母さんに会え なくなったと認めるのは辛すぎていつもいつも町に繰り出し ては色々な人に迷子になってしまった私のお父さんお母さんが 今どこにいるか知る人を探したの。でも誰も知ってるわけないよね。 もうこの世にはいないんだもの。まさか墓前に立てば会いに行け るなんて少女に教えるわけないよね。言えないよね。 すると彼は私の話しに同情してくれて男泣きに泣いたの。 私と彼はもうお互いに大号泣。 ウワァァ-----。゚(゚´Д`゚)゚。-----ン!!!! 省略されました。続きを読むには私と彼のために泣いて下さい。
227 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 23:31:53.18 ] ハッスルハッスル
228 名前:デフォルトの名無しさん [2012/05/21(月) 02:56:36.42 ] Lispが無いとか(笑
229 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 03:29:36.88 ] イテレーターなら、C#の方が良いだろ。
230 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 17:15:55.54 ] >>220 短くできるできないの前に、参加できる言語が限定されるだろ、これ。 use utf8; use File::Spec::Functions qw(splitpath); use Tk; use SDL ':all'; use SDL::Mixer; use SDL::Mixer::Music; SDL::init(SDL_INIT_AUDIO); SDL::Mixer::init(MIX_INIT_MP3 | MIX_INIT_FLAC | MIX_INIT_OGG); SDL::Mixer::open_audio(44100, AUDIO_S16, 2, 4096) and die SDL::get_error(); my $music; my $top = MainWindow->new; foreach( [選択 => sub{ my $file = $top->getOpenFile() or return; $top->title((splitpath $file)[2]); $music = SDL::Mixer::Music::load_MUS($file); }], [再生 => sub{ SDL::Mixer::Music::play_music($music, 0) }], [停止 => sub{ SDL::Mixer::Music::halt_music() }], [一時停止 => sub{ SDL::Mixer::Music::pause_music() }], [再開 => sub{ SDL::Mixer::Music::resume_music() }], [終了 => sub{ SDL::quit(); exit }], ){ $top->Button(-text => $_->[0], -command => $_->[1])->pack(-side => 'left'); } MainLoop();
231 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 21:53:08.99 ] ハッシュキーのベアワードや$_のおかげでRubyより綺麗という気がしなくもない
232 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 23:39:32.79 ] (ql:quickload :anaphora) (ql:quickload :ltk) (ql:quickload :lispbuilder-sdl) (ql:quickload :lispbuilder-sdl-mixer) (defpackage mixer (:use :anaphora :cl :ltk :sdl-mixer)) (in-package :mixer) (with-ltk () (loop with music for (text . command) in `(("選択" . ,(lambda () (awhen (get-open-file) (setf music (load-music it))))) ("再生" . ,(lambda () (when music (play-music music)))) ("停止" . ,#'halt-music) ("一時停止" . ,#'pause-music) ("再開" . ,#'resume-music) ("終了" . ,(lambda () (when music (free music)) (close-audio) (setf *exit-mainloop* t)))) do (pack (make-instance 'button :text text :command command) :side :left)) (sdl:with-init (sdl:sdl-init-audio) (open-audio) (mainloop))) SDL-Mixerの終了方法がイマイチかもしれない。