5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【Perl,Python,PHP】LL バトルロワイヤル 25【JavaScript】

1 :uy:2012/08/11(土) 12:21:25.19
面白かったのでコピペ

979 名前:uy[sage] 投稿日:2012/08/11(土) 11:53:55.80
面接官「特技はRubyとありますが?」
学生 「はい。Rubyでならなんでもかけます。」
面接官「ではシングルトンパターンを書いてください。」
学生 「存在しません?」
面接官「え、存在しない?」
学生 「はい。存在しません。Rubyはシングルトンパターンを言語でサポートしています。」
面接官「・・・で、その言語でサポートされた機能を使うとシングルトンパターンになるんですよね?」
学生 「はい。シングルトンパターンです。」
面接官「いや、あなたRubyでシングルトンパターンは存在しないといいましたよね。なぜシングルトンパターンになるんですか?」
学生 「でも、シングルトンパターンは存在しないんですよ。」
面接官「いや、存在しないとか問題じゃなくてですね・・・」
学生 「Rubyなら簡単にシングルトンパターン書けますよ。」
面接官「ふざけないでください。それに機能が用意されてるってことは存在するでしょ。だいたい・・・」
学生 「機能は用意されていますが言語でサポートしているんです。だから存在しません。」
面接官「聞いてません。帰って下さい。」
学生 「あれあれ?怒らせていいんですか?シングルトンパターン書きますよ。」
面接官「いいですよ。書いてください。Rubyでシングルトンパターンを。それで満足したら帰って下さい。」
学生 「運がよかったな。Rubyにシングルトンパターンは存在しないようだ。」
面接官「帰れよ。」


2 :デフォルトの名無しさん:2012/08/11(土) 12:26:04.75
面白くないし>>1にそんなもん貼る神経が分からん
キモすぎるわ

3 :uy:2012/08/11(土) 12:28:09.50
>>1に貼っておけばスレがある限りずっと見れるだろう?

4 :uy:2012/08/11(土) 12:32:37.65


993 名前:uy :2012/08/11(土) 12:11:44.29

ほらよ

デザインパターンのシングルトン
http://doc.ruby-lang.org/ja/1.9.3/class/Singleton.html

rubyのシングルトン
http://doc.ruby-lang.org/ja/1.9.3/doc/spec=2fdef.html#singleton_class


はい、"完全"別物です





997 名前:uy :2012/08/11(土) 12:13:37.44
>>995
だーかーら、rubyちょっとは勉強しろよ話にならねーから
ヒント:methods.sort.grep(/singleton/)





5 :uy:2012/08/11(土) 12:37:30.73
はいはい雑魚ざっこ しねしね

6 :uy:2012/08/11(土) 12:59:49.00
>>4
でさ、マジで聞きたいんだけど、
お前その2つが両方共
シングルトンだと思ってるの?

7 :uy:2012/08/11(土) 13:01:39.22
なんで知識量で完全に劣ってるのに、そんなに勇猛果敢に挑戦してきて敗北して涙目になろうとするんだろう

わけがわからないよ

8 :uy:2012/08/11(土) 13:02:12.10
>>7
自分のことぐらい自分で分かれw

9 :uy:2012/08/11(土) 13:03:18.76
はやく謝れよ

10 :uy:2012/08/11(土) 13:12:19.06
ねえまだ?

11 :uy:2012/08/11(土) 13:20:55.28
def self.あ

end

これはシングルトンメソッドです

特異メソッドです



12 :uy:2012/08/11(土) 13:34:36.00
シングルトンメソッドというのは
シングルトンパターンとどういう関連があるのでしょうか?

13 :デフォルトの名無しさん:2012/08/11(土) 13:41:46.47
ゴミ

14 :uy:2012/08/11(土) 13:48:27.68
シングルトンメソッドは、
シングルトンパターンという名前の
シングルトンを借りただけってことがわかりました。
つまり、目的がぜんぜん違う別物です。

Rubyはもちろんシングルトンパターンがありますが
それとは別にシングルトンメソッドがあるということです。



15 :デフォルトの名無しさん:2012/08/11(土) 13:50:00.58
singletonはインスタンスが複数になりそうな時のが良く使うな。

16 :uy:2012/08/11(土) 13:50:16.10
よくできましたおめでとうー(≧ヘ≦)

17 :uy:2012/08/11(土) 13:52:11.02
書籍「デザインパターン」にも載っていたね。
名前とは反して、インスタンス数を最大いくつって
制限する方法が応用例として書いてあったよ。

18 :uy:2012/08/11(土) 13:52:54.07
馬鹿がシングルトンメソッドの話をして
混乱させただけというわけかw

さあ、シングルトンパターンの話に戻りましょう。
つまり>>1です。

19 :uy:2012/08/11(土) 13:54:27.80
馬鹿が混乱させたというか、
馬鹿が一人で混乱してただけだろw

20 :uy:2012/08/11(土) 13:57:06.71
どうやらキチガイも消えたし、
デザインパターンは、考え方であって
実装コードじゃないの意味がやっと理解できたんだろうね。

無知なやつほど、よく噛み付く。

21 :uy:2012/08/11(土) 14:07:20.82
observerみたいに実装コードを一部巻き込んでるものもあるよ
メソッド名がupdateと決まってる

22 :uy:2012/08/11(土) 14:09:19.05
メソッド名が決まってるだけじゃ
実装コードとは言わんw

23 :uy:2012/08/11(土) 14:10:24.11
Ruby厨って、インターフェースと
実装を分けて考えるってのが
苦手なのかもしれないね。

インターフェースって言語機能のやつじゃなくて
これも考え方の話。

24 :デフォルトの名無しさん:2012/08/11(土) 14:49:58.70
無駄に書き込み分けるのってrubyの言語仕様なのかな。

25 :uy:2012/08/11(土) 15:18:01.22
rubyではこのようにして現在ヒープにある様々なオブジェクト一覧を取得できます


p ObjectSpace.count_objects

test_uy = 9999999999

ObjectSpace.each_object.map do |m|
  m
end
.each do |m|
  if m.to_s =~ /test_uy/
    p m
  end
end


こんな事出来る言語ほかにある?
勝てそうな言語ある?

26 :デフォルトの名無しさん:2012/08/11(土) 16:05:51.58
uyは定期的にRuby関係のスレをageまくる。
そんな事しても、Rubyはそのうちフェードアウトするのでご心配なく。
なぜなら文法が汚すぎるから。

27 :uy:2012/08/11(土) 16:23:45.44
もともとrubyはperlの代用
一時的にperlがいけなかった場所まで上っているにすぎない

28 :uy:2012/08/11(土) 17:02:00.80
rubyは日本語資料多いので
英語が苦手なプログラマーにもお勧めです

29 :デフォルトの名無しさん:2012/08/11(土) 17:08:49.20
スクリプト言語のオブジェクト指向は連想リストと名前空間で十分だろうなと思っている

30 :デフォルトの名無しさん:2012/08/11(土) 17:14:16.81
普段の作業はそんなもんだと思う
でもそれだけだとスクリプト言語でCのライブラリを書き写して公開するとかが簡単にはできない

31 :デフォルトの名無しさん:2012/08/11(土) 17:16:51.40
matz,guido,larry,stroustrup,gosling,Hejlsberg,K&R
を一ヶ所に閉じ込めれば最強のecmaスクリプトが出来上がると思うの

32 :デフォルトの名無しさん:2012/08/11(土) 17:17:59.94
>>25
こんなのRubyの専売特許じゃない

33 :uy:2012/08/11(土) 18:47:14.71
>>25
Java
http://itpro.nikkeibp.co.jp/article/COLUMN/20061102/252525/

> 「http://localhost:7000/」で閲覧できるのはクラスの一覧です。

34 :uy:2012/08/11(土) 18:47:55.40
こっちのほうがわかりやすいかな。

http://www.javainthebox.net/laboratory/JavaSE6/managementtools/mngtools.html

35 :デフォルトの名無しさん:2012/08/11(土) 18:48:08.19
小学校の頃ヒステリーな奴がいたなぁ

36 :デフォルトの名無しさん:2012/08/11(土) 19:09:09.51
とりあえずPythonのコード置いときますね

foo = 999999
[print(y) for x,y in locals().items() if x == 'foo']

37 :デフォルトの名無しさん:2012/08/11(土) 19:51:17.88
それ出来ないのって、c/c++だけじゃないのか

38 :デフォルトの名無しさん:2012/08/11(土) 20:16:15.88
C++の美徳は余計なことをしない、だからな。
そういうことをしたいなら、そういうコードを書いてくださいっていう。
共通の基底クラスすらないし。

39 :デフォルトの名無しさん:2012/08/11(土) 21:31:11.39
c++で共通の基底クラスを自前で実装しているコードは眺めたことあるな
あれは一体、何が嬉しいんだろう

40 :デフォルトの名無しさん:2012/08/11(土) 21:40:17.00
デバッグがしやすいとかじゃないかな。

41 :デフォルトの名無しさん:2012/08/11(土) 21:52:26.98
デバッグ用途にutilクラスでも作るのかしら
c++にinstanceofみたいな命令あったかな

42 :デフォルトの名無しさん:2012/08/11(土) 21:58:13.86
何がしたかったとかC++使いに問うてはいけないと思う

43 :デフォルトの名無しさん:2012/08/11(土) 22:21:30.71
〜使いって、はてなやtwitter民だよね
リア充臭いから爆発しないかな

44 :デフォルトの名無しさん:2012/08/12(日) 01:32:08.05
cとmatlabが最強だよ
web系記者はアホな記事を書きやがって

45 :デフォルトの名無しさん:2012/08/12(日) 01:53:47.56
>>31
おい一人鬼籍に入られてる

46 :デフォルトの名無しさん:2012/08/12(日) 13:51:52.99
LLだの言ってスクリプト言語しか会話できんやつら&言語がキモすぎる。
RubyやPytonなんてLLなんて言わん。単なるスクリプト言語。

もう俺がLLの必須定義を2つ書いておくからお前ら条件満たしてない言語の会話するなよ。

LLの定義
・C/C++/javaの代替を目指す言語であること。
・コンパイラが存在すること、VMが充実していること。

この2つは絶対に必要十分条件だ。
低レベルなプログラミングを目指すのに実行環境が用意できん言語とか一発退場だ。
RubyとPythonはこの時点でアウト、スレチ、なんのために存在するの?

LLなんて入れるのはJavaScriptしかねえだろ。
VMはほぼどのパソコンにも乗っている。
コンパイラもインテルがHPC向けに作ってる。
サーバーサイドもJavaScriptも浸透してる。

今の世の中、JavaScript以外にLLの選択肢なんてない。
LLの定義を勘違いしてるウンコ君どもはサーバーサイドプログラムのバトルロワイヤルでもやってな。

47 :デフォルトの名無しさん:2012/08/12(日) 13:54:27.71
うわぁキモいwww

お前日本語のLLの定義が嫌なら
書き込みも英語でしろよ

48 :デフォルトの名無しさん:2012/08/12(日) 13:59:01.33
RubyやPythonは特殊すぎるからスレを分類すべき。
PHPも独立させるべきかな。
あとついでPerlはもう誰も触れないからいっか。

49 :デフォルトの名無しさん:2012/08/12(日) 14:03:07.42
次スレはJavaScriptひとりロワイヤルになるのか

50 :デフォルトの名無しさん:2012/08/12(日) 14:11:17.83
コンパイルしてJavascriptに変換出来る言語処理系リスト
この中からバトルロワイヤルします

https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS

51 :デフォルトの名無しさん:2012/08/12(日) 15:11:24.40
他の言語は全部劣ってんだからJavaScriptでいいやん…。

52 :デフォルトの名無しさん:2012/08/12(日) 15:14:00.41
スクレイピングも出来ない言語はこまる

53 :デフォルトの名無しさん:2012/08/12(日) 15:16:12.93
>>51
言語として本当にJavascriptが優れてたら
>>50のリストがこんなに一杯にならないと思うよ
直接Javascript書けば済む話だからね

54 :デフォルトの名無しさん:2012/08/12(日) 15:21:19.17
>>51
試しにコマンドラインから使えるgrepとcurlのサブセットでも書いてみてくれないか(煽りじゃないよ)
どんなふうにJavaScriptでPerlやRubyを代替するのか知りたい

55 :デフォルトの名無しさん:2012/08/12(日) 16:59:40.67
>>36
どちらかというと gc.get_objects() じゃない?

56 :uy:2012/08/12(日) 18:22:47.60
Xtendが結構やばいよ
scala(笑)とは違うのが一目でわかった
rubyっぽくかけるJAVAって印象
あれが伸びたら動的言語の地位が危ない気がすると俺様は警告を出してみる

57 :デフォルトの名無しさん:2012/08/12(日) 18:33:21.22
>>53
お前C言語ディスってんのか

58 :デフォルトの名無しさん:2012/08/12(日) 19:09:09.61
jsはもう2段階くらい化けないと

59 :デフォルトの名無しさん:2012/08/12(日) 20:08:27.37
Javaの方向に二段階くらい化けてドカタ専用言語化すると良い

60 :デフォルトの名無しさん:2012/08/12(日) 20:19:12.50
それがいい。ドカタ専用言語ってことはそれだけ高い生産性と派遣でも理解できる容易さがあるってことだ。
C言語、Java、HTML&JavaScript、PHPやらが現状のドカタ専用言語。
社会で使われないRubyとPythonは生産性の欠片もないんだろうな。

61 :デフォルトの名無しさん:2012/08/12(日) 20:27:50.58
ドカタは生産性の高い言語を選んでるワケじゃなくて
低能だから習得可能な言語が限られているだけだよ

ドカタ専用言語 ≠ 生産性が高い

62 :デフォルトの名無しさん:2012/08/12(日) 21:00:52.62
で、君の言う生産性の高い言語を使うと、いったい何パーセント生産性があがるわけ?
たいして上がらなかったから未だにC言語がシェアNo1なんじゃないの?

63 :デフォルトの名無しさん:2012/08/12(日) 21:01:21.06
100歩譲ってrubyがゴミだという事にしても
Pythonをバカにする奴はにわか

64 :デフォルトの名無しさん:2012/08/12(日) 21:12:14.40
つっこみにくい自虐釣りだなあ

65 :デフォルトの名無しさん:2012/08/12(日) 21:57:28.35
>>62
それ訊いてどうしたいの?どうせ低能の君には使えないのに

66 :デフォルトの名無しさん:2012/08/12(日) 22:14:23.14
>>54
こんな簡単な問題にレスがつかないのって何で?

67 :デフォルトの名無しさん:2012/08/12(日) 22:19:00.80
パイソニスタ ルビリストが今日は荒れてるな

68 :デフォルトの名無しさん:2012/08/12(日) 22:22:48.79
>>65
結局そういう煽りしか出来ねーんじゃん。

69 :デフォルトの名無しさん:2012/08/12(日) 22:31:11.68
このスレの存在意義って…

70 :デフォルトの名無しさん:2012/08/12(日) 22:51:31.69
rubyによる他LL公開処刑場だよ
スレタイに入ってる言語はruby様に刃向かった為に論破されていく

71 :デフォルトの名無しさん:2012/08/12(日) 23:10:27.51
>>69
隔離スレ

72 :デフォルトの名無しさん:2012/08/12(日) 23:19:31.25
>>71
隔離スレとして機能してねーじゃん

73 :デフォルトの名無しさん:2012/08/12(日) 23:21:20.74
>>69
キチガイをヲチしてニヤニヤするスレです
ほーらruby厨がすぐ近くに!

74 :デフォルトの名無しさん:2012/08/12(日) 23:26:12.33
>>68
自分は>>54だけど>>66とは別人(どうでもいいけど)

探してみたらJavaScriptにも雑用向けのライブラリ入りの処理系がちょいちょいあるようだ
https://developer.mozilla.org/en-US/docs/JavaScript/Shells

そのうちJSDBって処理系だとこう書けるらしい。普通に使えそう
http://www.jsdb.org/cookbook.html

75 :デフォルトの名無しさん:2012/08/12(日) 23:35:50.63
varってどうにかならんの

76 :デフォルトの名無しさん:2012/08/12(日) 23:37:57.29
つ coffeescript

77 :デフォルトの名無しさん:2012/08/12(日) 23:39:19.32
JavaScriptのvarは省略できるけどグローバル変数になるんだったか

78 :デフォルトの名無しさん:2012/08/13(月) 10:33:57.60
JSはvarがあるから良いんだよ。
動的型言語だから、型を指定する必要は無いけど、
それでも変数のスコープを指定する必要はあるので、
結局変数宣言は省けない。
無理に省くとPythonやRubyみたいに奇妙なことになる。

79 :デフォルトの名無しさん:2012/08/13(月) 10:36:32.02
JS益々低迷。
http://www.tiobe.com/index.php/paperinfo/tpci/JavaScript.html

80 :デフォルトの名無しさん:2012/08/13(月) 11:11:23.23
てかそれだとjsってイテレータ用の変数にまでvarつけなきゃじゃねーの
使われない理由のひとつがまずそこら辺だろう

81 :デフォルトの名無しさん:2012/08/13(月) 11:13:52.71
グローバル変数のほうが使う機会って少ないんだから
何かオプションつけて宣言するならグローバル変数のほうだよ
jsは逆に設計しちゃったのか?
ローカル変数は簡単な記述でいいのに

82 :デフォルトの名無しさん:2012/08/13(月) 11:56:10.67
>>81
一理あるが、それがその場しのぎの屁理屈ではないということを示すためには
「引数も多いから引数も宣言するべきではない」と言い切る覚悟が必要

83 :デフォルトの名無しさん:2012/08/13(月) 11:57:16.00
ML系の言語、たとえばSML(Standard ML)だと、
代入(名前への値の束縛)にはJSと同様、文の頭に val が付く。
ただし、SMLの場合はあらゆる構文で文が予約語から始まることで
言語全体の構文が簡潔で明解になっている。
また階層的で明確な名前空間があるから、変数にグローバルや
ローカルといった区別は不要。トップレベルで代入された変数が、
いわるゆグローバル変数と同等な扱いになる。さらには大規模開発向けに
モジュールによって名前空間を明示的に分離できる。

考えるに、元々JSはWebブラウザ上の素朴な簡易スクリプト言語として
設計されたけど、近年では重要度が増して開発規模が増大してきた。
言語設計の想定外の用途に利用が広がったことの弊害ではないかと思う。
結論から言うと、言語設計時に大規模開発を想定していた
PythonやRubyといった他のLLと比較して、JSは大規模開発に向いていない。

84 :デフォルトの名無しさん:2012/08/13(月) 12:03:30.82
そもそもブロックスコープがないjsでローカル変数っていうのもな
Cみたいに関数冒頭で宣言する言語なんだろ結局
関数ネストがよく使われる言語だし

jsで大規模やろうとするとオレオレのクラス実装や名前空間実装出てきちゃうのはあるな
その為のcoffeescriptとかなんだろうけど

85 :デフォルトの名無しさん:2012/08/13(月) 12:05:04.84
>>82
全然わからんので日本語で頼む

86 :デフォルトの名無しさん:2012/08/13(月) 12:06:26.04
>>81
グローバルとローカル以外にも、その中間にあたる、ネストスコープとかあるから。
特に最近はクロージャやラムダを多用する方向だから、ネストスコープだらけになる。

もし変数宣言がなければ、の { i=0; { i=1; } }
内側のiと外側のiが同じものなのか違うものなのか区別を付けれない。
ちなみに、Rubyだと同じもの、Pythonだと違うもの、となる。
Ruby方式だと、意図せずに変数名が被ったときにバグるし、
Python方式だと、外のスコープの変数への代入が出来ない。
その点、JSだと、varが付いていれば新しい変数、なければ外のスコープの変数、
だから、使い分けが出来るし、かつ安全で、可読性も高い。

87 :デフォルトの名無しさん:2012/08/13(月) 12:13:47.63
>>83
言ってることはわからなくも無いが、スコープについて言及しているのであれば、最後の一文、

>PythonやRubyといった他のLLと比較して、JSは大規模開発に向いていない。

これはおかしい。なぜならPythonやRubyのスコープは、JSよりもさらに劣っているから。
特にPythonはスコープ内での代入の有る無しでスコープが切り替わる。
この前代未聞なカス仕様を擁護できる奴は誰もいない。マジでひどい。
3.0でnonlocal追加したときに、このカス仕様も修正すればよかったのに。
nonlocalがあるなら、代入の有る無しでスコープが切り替わるカス仕様は要らないわな。

88 :デフォルトの名無しさん:2012/08/13(月) 12:14:01.62
>>85
お前それサバンナでも同じこと言い切る覚悟あるの?

89 :デフォルトの名無しさん:2012/08/13(月) 12:16:12.13
すでにJSはブラウザ上の実装が全世界で広がっているから、
Pyhtonのような思いきって後方互換性を切り捨てるというような
言語仕様の変更や拡張は無理だろうね。
言い換えると、今後とも言語仕様の発展性は見込めない。

90 :デフォルトの名無しさん:2012/08/13(月) 12:17:06.52
>>86
けどそれだとちょっとした小さな使い捨てスクリプトを書く時に
varをつけるかつけないか悩む事にならね?

使い捨てスクリプトとして書いても、後からコピペして別の場所で使う可能性も考えると
varつけなきゃいけない気もしてくるし
jsのサンプルってみんなそうなってる気がする

俺の気のせいじゃなければjsって
大規模プログラム向いていないし、小規模スクリプトも向いてなくね?

91 :デフォルトの名無しさん:2012/08/13(月) 12:36:27.32
>>90
外のスコープの変数にアクセスする場合は、つけないし、
そうじゃない場合はつければよい。何も悩む必要は無い。
変数の最適なスコープは常に一つしかないのだから、それに準じればよい。
外のスコープで同名の変数が有るか無いか気を配らなければならないRubyや、
代入の有る無しでスコープが切り替わってしまうPythonなんかに比べれば、
遥かに単純で、考えることは少ない。

スコープ以外のことに関してで、RubyやPythonを持ち上げて、JSをこき下ろす事は結構だけど、
ことスコープに関しては、それは無理。
ただ、JSのスコープの仕様が特に優れているというわけでもないが。
RubyとPython、特にPythonの仕様が異端で、どうかしているってだけの話なので。
JSのスコープのやり方は他の言語でも見られるスタンダードなものだし、
当たり前のことを当たり前にやってるだけ。
難点を挙げるとすれば、ブロックスコープが無いことか。まぁRubyやPythonにも無いんだけどね。

92 :デフォルトの名無しさん:2012/08/13(月) 12:44:16.41
ただ単にvarかくのが面倒くさいって話だよ
変数宣言が必要になる時点で小さなスクリプトを書くのにjsは向いていない

かといって
>結論から言うと、言語設計時に大規模開発を想定していた
>PythonやRubyといった他のLLと比較して、JSは大規模開発に向いていない。

こういう事情もあるから大規模開発にも向いていない

あ、ゴミか^^;

rubyを知らない知ったかゴミカス野朗みたいだけど、rubyにブロックスコープはある

93 :デフォルトの名無しさん:2012/08/13(月) 12:48:57.94
>rubyを知らない知ったかゴミカス野朗みたいだけど、rubyにブロックスコープはある
他の言語で言うところのブロックスコープだ。

94 :デフォルトの名無しさん:2012/08/13(月) 13:18:03.83
君の知識レベルで他言語ディスるの無理

95 :デフォルトの名無しさん:2012/08/13(月) 13:46:22.71
初心者死ね

96 :デフォルトの名無しさん:2012/08/13(月) 16:52:09.34
hirata-create.toypark.in

97 :デフォルトの名無しさん:2012/08/13(月) 17:28:35.80
.NET,ASP,PHP,javaこの辺の言語を何れもやれって会社は大した技術者が居ない糞会社

98 :デフォルトの名無しさん:2012/08/14(火) 07:24:16.04
Lispのスコープも最初は問題があったがSchemeで解決した
Smalltalkの影響を受けた言語は今でもスコープがおかしい

99 :デフォルトの名無しさん:2012/08/14(火) 07:55:53.88
>>98
Prologにスコープはないな。


100 :デフォルトの名無しさん:2012/08/14(火) 08:14:25.83
>>99
繰り返しは?

101 :デフォルトの名無しさん:2012/08/14(火) 08:53:56.63
Prologにはブロックが無いよな
Cでも if (foo && bar && ……) return 1; のように書ければ{}はほぼ無くなるし

102 :デフォルトの名無しさん:2012/08/14(火) 08:54:26.78
スコープについてはRubyもPythonもPHP大きな差はないかな。
ブロックスコープなのはPerlだけでしょ。
それでもJSの場合、名前空間もなければClassもないので、一番分かりづらいというのはあるね。

103 :デフォルトの名無しさん:2012/08/14(火) 09:04:12.85
>>98
どうおかしいの?

104 :デフォルトの名無しさん:2012/08/14(火) 09:16:09.79
>>100
繰り返し構文がないのだから、「ない」と言い切っていいんじゃないか。
仕様が「繰り返せ」の場合は再帰で表現するのだが、これも、繰り返しとも
読める、くらいの解釈でいい。節と節がバラバラに主張していて先ずその主張の
核心を「宣言的に」読み取るのがPrologなのではないか。仕様の繰り返しを陽に
するには、述語名で「・・・を繰り返す」とはっきり述べるのが一番よいだろう。


105 :デフォルトの名無しさん:2012/08/14(火) 09:33:09.22
>>103
RubyもPythonも大きな差はないとか言われてもスルーしてる時点でおかしいだろ

106 :デフォルトの名無しさん:2012/08/14(火) 09:44:51.21
さらっと流されてるが、>>86とか>>91のJSに関する説明はちょっとおかしいよね?
{i=0; {var i=1;} }
とかしてもJSにはブロックスコープは無いから外側のiと内側のiは同じものになってしまう
var宣言を単純にブロックの内側と外側の変数を区別するものには使えない

JSでブロックスコープ的なものが使いたいときはブロックの代わりに無名関数でくくらないと
{i=0; (function(){ var i=1; })(); }

107 :デフォルトの名無しさん:2012/08/14(火) 10:20:58.13
あーそれは擬似コードだから。
PythonとRubyとJSでそれぞれ記述が違うので、
{{}}で、ネストスコープ一般を表現したってだけ。

108 :デフォルトの名無しさん:2012/08/14(火) 10:28:50.69
JSのスコープのネストは関数スコープで作る前提の話なのか
たしかにブロックのスコープとは書いてないね

109 :デフォルトの名無しさん:2012/08/14(火) 10:59:07.14
うんこな言語集めてどっちがマシとかマジうけるわ
マトモな言語使いたかったら静的型付け関数型言語でも使ってろ

110 :デフォルトの名無しさん:2012/08/14(火) 11:15:01.64
>>109
スレタイ嫁

111 :デフォルトの名無しさん:2012/08/14(火) 11:20:59.96
Javascriptを読み書きしてると function() がゲシュタルト崩壊する

112 :デフォルトの名無しさん:2012/08/14(火) 12:17:19.67
Perlよりマシといえば大抵のことが許される雰囲気があった
実際にはPerlに勝ったとか負けたとか考えない言語のほうがマシだった

113 :デフォルトの名無しさん:2012/08/14(火) 16:44:44.54
javascriptとsmalltalkのうんこさはそっくり

114 :デフォルトの名無しさん:2012/08/14(火) 22:46:09.32

# C
1 for()
2 {
3  コード
4 }

# ruby
1 map do
2  コード
3 end


do 〜 endより { } のほうが、読みやすいことが分かった

115 :デフォルトの名無しさん:2012/08/14(火) 22:52:33.16
>>113
smalltalk風の開発環境でDOMやhtml5を弄れるruby処理系なんてあれば最強じゃね?

116 :デフォルトの名無しさん:2012/08/14(火) 22:58:15.05
Smalltalk処理系を流用した
Ruby処理系(MagLev)ならあったが……

117 :デフォルトの名無しさん:2012/08/14(火) 23:31:05.55
>>114
ハア?
irb(main):001:0> [1,2,3].each { |x| p x }
1
2
3
=> [1, 2, 3]

118 :デフォルトの名無しさん:2012/08/15(水) 00:44:10.32
codejamってjavascriptだけハブられてるのね
PHPからclojureまであるのに

119 :デフォルトの名無しさん:2012/08/15(水) 07:29:06.13
JSの良さは、熱心なファンがいないってところでもあるからな。
勝手に広まって勝手に定着したから。

120 :デフォルトの名無しさん:2012/08/15(水) 08:37:53.53
Javascriptのファンなんて希少種だろ
他言語からJavascriptへコンパイルするのが流行り
直接Javascript書くのは低能

121 :デフォルトの名無しさん:2012/08/15(水) 09:00:24.91
>>120
定着しないのが特徴かな。実行環境が不安定過ぎた。
一時熱中して、そして去っていく。だから、プログラマ数も増えない。

122 :デフォルトの名無しさん:2012/08/15(水) 09:31:59.66
>>120
今後は、これまでの軽量言語を抑えて最大になると思うけど
githubは既にjsの登録数がrubyを越えている
そして、熱心なファンは海外ではninjaだとか言われてるみたいだぞ

123 :デフォルトの名無しさん:2012/08/15(水) 09:42:35.15
>>121
TIOBE INDEX がそれを物語っているね。みんなJSはもっと
使われてるでしょって言う。使ってみた人の数は多いが、
現時点での活性はやはり検索数のようなものに出てしまう。


124 :デフォルトの名無しさん:2012/08/15(水) 11:16:18.20
jsがどこで流行ってるのかわからない
あれがブラウザ以外で使えると思ってる子はちょっとな
ブラウザ用に作られてる言語だからそれを外に引っ張り出してきても
コーディング自体が楽になるようなシンタックスシュガー系の拡張は何もやってくれないと思うよ
そんな言語で頑張りたければどうぞ

125 :デフォルトの名無しさん:2012/08/15(水) 11:26:01.35
>>124
Ajaxは流行ったと思うけど、それでもダメだった。きびしいですね。

126 :デフォルトの名無しさん:2012/08/15(水) 11:29:37.61
ここはどんだけガラパゴスですか

127 :デフォルトの名無しさん:2012/08/15(水) 11:33:37.84
どうであれ、ブラウザでは生き残るから、
流行り廃りに関係ない、息の長い言語になるだろうね。

128 :デフォルトの名無しさん:2012/08/15(水) 11:39:35.25
>>126
http://www.tiobe.com/index.php/paperinfo/tpci/JavaScript.html

129 :デフォルトの名無しさん:2012/08/15(水) 12:01:49.91
まあブラウザに多言語乗っける流れがくるよ
その時がjsの終わり

130 :デフォルトの名無しさん:2012/08/15(水) 12:17:02.89
Googleが乗せようっていうとMSは嫌だって言うだろうし、
MSが乗せようっていうとAppleが嫌だって言うだろうし、
なかなか標準の規格に入らないんじゃないかね。
別に規格外でも、互換性糞食らえで乗せたきゃ勝手に
乗せればよいんだが、特定のブラウザでしか動かないのでは
普及するわけ無いし。
やっぱり足並み揃えない取って事で、
新バージョンのJSが乗っかって終わりでしょう。

131 :デフォルトの名無しさん:2012/08/15(水) 12:26:28.68
>>129
今以上にカオスになるな
クロスブラウザ対応不可能になる

132 :uy:2012/08/15(水) 13:14:53.16
これから苦労してjsをマシな言語にさせていくよりは他言語入れたほうが早い

133 :デフォルトの名無しさん:2012/08/15(水) 13:16:51.90
たとえそうでも、他の言語をねじ込むのは無理。
Appleが提案してもGoogleとMSは反対する。

134 :uy:2012/08/15(水) 13:30:47.00
ruby2.0はChromeで動く可能性が高い

135 :デフォルトの名無しさん:2012/08/15(水) 13:40:46.02
はぁ、NaCLね。はいはい

136 :デフォルトの名無しさん:2012/08/15(水) 14:10:15.96
またuyがRuby関係のスレをage荒らしてるな。
議論に負けるといつもこれだ。

137 :uy:2012/08/15(水) 14:18:24.05
IronRubyは存在する

IronJavaScriptは存在しない

138 :デフォルトの名無しさん:2012/08/15(水) 14:23:07.71
.NetならC#だろ。バカじゃね。
同様にブラウザで動かすならJSだがな。
RubyはPythonともろに食い合う不幸な運命。

139 :uy:2012/08/15(水) 14:25:59.58
えっ
http://ynupl.com/reddam/archives/155

こういう使い方だと思うけど
なんだと思った?

Scala(笑)がJavaのクラスを継承できます(キリッ)とかいってたけど
それと同じ

140 :デフォルトの名無しさん:2012/08/15(水) 14:33:23.30
まずさ、Rubyを普及させたいのなら、何かツールを作ったら?
C言語はOSを作るために作った言語だし、
JSはネスケ社がブラウザ作る片手間に作った言語だし、
JavaはJavaVMと一蓮托生だし、
C#は.Netのために作った言語。

だからさ、Rubyも普及させたいのなら、marzに頼んで、
社会の基盤になってしまうような、革新的超便利ツール作ってもらって、
その組み込みスクリプト言語としてRuby乗せれば?

言語だけ作って後はポイ投げってのはダメ言語の典型なんだよ。
むしろツールの作成を本業とし、そっちの普及を目的とすべし。
言語開発なんかは、必要に迫られて、傍らでするぐらいでよい。
普及してて人気のある言語はほとんどそう。
ツールに引っ付いて勝手に広まった。

141 :デフォルトの名無しさん:2012/08/15(水) 14:36:53.30
Rにくっついて広まるかも。
http://shop.oreilly.com/product/0636920022626.do

142 :デフォルトの名無しさん:2012/08/15(水) 14:40:36.21
>>137
えっ
http://ja.wikipedia.org/wiki/JScript#JScript_.NET

143 :デフォルトの名無しさん:2012/08/15(水) 14:43:17.24
>>140
元がPerlに不満を持ったMatzが書き上げたオレ言語がRubyなので
実際今でも一番多い使い方が
たぶんシェルスクリプト・Perl・make辺りの代替でしょ
プロダクト未満の小物が本来の主戦場

ただ、何か知らんが一部のハッカーの琴線に触れるものがあるらしく
RailsやらRedmineやらMetasploitやら
一線級のソフトも出てきた、というのがここ5年ぐらいの話

144 :デフォルトの名無しさん:2012/08/15(水) 15:07:36.87
(*´・∀・)(・∀・`*)ヘー

145 :uy:2012/08/15(水) 15:10:21.84
Rubyはまだまだ歴史が浅い

146 :デフォルトの名無しさん:2012/08/15(水) 15:17:03.87
Rubyはなんでdoに|つけるの?

147 :デフォルトの名無しさん:2012/08/15(水) 15:19:13.66
たしかJavaと同時期のリリースだったよね。

148 :uy:2012/08/15(水) 15:23:41.39
どうしてこんなに差がついたのか。

149 :デフォルトの名無しさん:2012/08/15(水) 15:39:44.61
>>146
パイプでブロック引数をはさまないと、
それがブロック引数なのか、
単に式としてそこにあるのかが区別できない

150 :uy:2012/08/15(水) 15:42:23.84
クソ仕様ですみませんwww

151 :デフォルトの名無しさん:2012/08/15(水) 15:46:24.88
>>149
pythonみたいな
for t in list:
みたいにできなかったの?
絶対にこっちのほうがわかりやすいと思うんだけど||でかこったら特殊な演算やってそうじゃん

152 :uy:2012/08/15(水) 15:48:47.94
>ただ、何か知らんが一部のハッカーの琴線に触れるものがあるらしく

ていうか、何で分からないのか分からない
最初から最後までオブジェクトで出来てる時点でさ
if true
  5
end.times do | n |
  p n
end
こう、IFの戻り値さえそのままメソッドチェインで使えるんだけど


153 :デフォルトの名無しさん:2012/08/15(水) 15:49:51.63
>>151
for t in list; end という構文も最初から存在していますけど、なにか?

154 :デフォルトの名無しさん:2012/08/15(水) 15:54:31.43
>>152
Rubyにおいて if や case といった条件分岐は
文(statement)ではなく式(expression)だから
これはSmalltalkも同じ

手続き型言語として見れば異端だけど、
関数型言語として考えれば実に自然なプログラミングができる

155 :デフォルトの名無しさん:2012/08/15(水) 16:03:00.24
>>153
なんであんまりrubyではその構文使わずに使わずにeach doするの?


156 :uy:2012/08/15(水) 16:22:03.27
for文()よりもeachの方がメソッドチェインできて最強だからだよ

157 :uy:2012/08/15(水) 16:23:28.48
メソッドチェインってなにがいいの?

158 :153:2012/08/15(水) 16:26:13.52
>>155
おそらく列挙オブジェクトへブロック付きメッセージを送るという
Smalltalk流のオブジェクト指向スタイルが好まれるからだと思う
for構文は手続き型スタイルであり、PerlやPythonから移ってきたばかりの
Ruby初心者は、最初for構文を使うけど、Rubyを深く知るにに従って
(forよりも柔軟な)オブジェクト指向スタイル、つまりRubyらしい
プログラミングスタイルを身につけていく

159 :uy:2012/08/15(水) 16:39:40.59
メソッドチェインの有用性から説明しないとダメな奴がいるの?


160 :153:2012/08/15(水) 16:42:30.15
>>157
メソッドチェインに関しては過去スレで話題になったけど、
最大の利点は左から右へと流れる、自然に読み取れるコードが
書けることだと思う

161 :デフォルトの名無しさん:2012/08/15(水) 16:42:44.79
柔軟な例とかない?

162 :uy:2012/08/15(水) 16:52:58.51
rubyで一番よく使うのはmap、これは戻り値に配列を返す
普通に書いたら
p [1,2,3].map { |x| x*2 } # => [2, 4, 6]

だけど、メソッド(イテレータ)チェインする事によって、本来配列を返さない
each_with_indexなども
p [1,2,3].each_with_index { |x,i| x*(2+i) } # => [1, 2, 3]

mapを置く事による戻り値を変えられる
p [1,2,3].each_with_index.map { |x,i| x*(2+i) } # => [2, 6, 12]


これをforで書くとこう
s = []
i = 0
for x in [1,2,3]
  s << x*(2+i)
  i += 1
end
p s

for文とイテレータじゃ力の差が有りすぎて異論の余地すらない

163 :153:2012/08/15(水) 17:05:47.91
>>161
たとえば「あるリストを選別してソートして計算して書き出す」という
お題の場合、以下のような破壊的代入の無い流れるようなコードが書ける

 list.select { .... }.sort { .... }.map { .... }.each do; .... end

もしRubyにfor構文しか存在しなければ、一時変数をゴリゴリと更新していく
ループ処理を並べた典型的な手続き型コードになる

164 :uy:2012/08/15(水) 17:19:49.47
つまり、書き方がちょっと変わっただけである。

165 :uy:2012/08/15(水) 17:21:52.02
実際は
list.select { hoge hoge hoge hoge hoge hoge }.sort { hoge hoge hoge hoge hoge hoge }.map { hoge hoge hoge hoge hoge hoge }.each do; hoge hoge hoge hoge end

となって見難いのである。

だから縦に流れるようなコードにしたほうがいい。

list.select { hoge hoge hoge hoge hoge hoge }
list.sort { hoge hoge hoge hoge hoge hoge }
list.map { hoge hoge hoge hoge hoge hoge }
list.each do; hoge hoge hoge hoge end

166 :153:2012/08/15(水) 17:28:12.26
>>165
文が1行で収まらなければ、改行とインデントを使って
上から下へ流れるコードを書けばいい
工夫すれば、実用的なプログラムでもすべて80桁以内になるよ

list.select {
  hoge
  hoge
  hoge
}.sort {
  hoge
  hoge
  hoge
}.map {
  hoge
  hoge
  hoge
}.each do
  hoge
  hoge
  hoge
end


167 :デフォルトの名無しさん:2012/08/15(水) 17:28:58.74
>>> [val*(2+idx) for idx,val in enumerate(sorted([3,2,1]))]
[2, 6, 12]
メソッド入れ子でもいいんちゃう?

168 :153:2012/08/15(水) 17:44:23.49
>>167はPyhon自慢のリスト内包表記だけど、
同じ計算は、Rubyであれば(>>162を少しだけいじって)
左から右へと流れるコードになる

irb(main):001:0> [3,2,1].sort.each_with_index.map { |x, i| x * (2 + i) }
=> [2, 6, 12]

さて、どちらが読みやすいと感じるかな?

169 :デフォルトの名無しさん:2012/08/15(水) 17:53:53.31
読みやすさで言えば、一時変数を用意するやり方だろう。

170 :デフォルトの名無しさん:2012/08/15(水) 17:58:45.01
それはペチパー君が慣れてないだけです

171 :デフォルトの名無しさん:2012/08/15(水) 18:05:30.28
慣れ言い出したら、それで全て解決だな。

172 :デフォルトの名無しさん:2012/08/15(水) 18:07:20.33
自転車こぐのも慣れが必要だよ

173 :デフォルトの名無しさん:2012/08/15(水) 18:08:42.47
>>168
どうみてもPythonのほうが読みやすい

174 :デフォルトの名無しさん:2012/08/15(水) 18:15:01.60
.map{|x| x*2}.
みたいに続いていく構文が若干分かりにくいんだよね
{}で囲まれてると関数に見えるし
||も引数なのかなんなのか謎だし

まあ慣れなんだろうけど

175 :153:2012/08/15(水) 18:21:38.11
>>173
>>168のRubyコードを第三者へ説明しようとしたら

 リスト定数をソートしてから添字付きで列挙し、各要素の計算値で写像する

と、左から右へと流れるコードの構成に沿って記述できる
これはトイプログラムに限らず、>>166のような長く大きなコードでも同じ

さて、>>167を第三者へ説明しようとすれば、どんな文章になるかな?

176 :153:2012/08/15(水) 18:25:51.31
>>174
関数に見えるというか、無名関数という関数そのものだよ
lambdaのような予約語が省略されているだけ

177 :デフォルトの名無しさん:2012/08/15(水) 18:40:16.04
だから、分かりやすいのがよいなら、
一時変数用意すればよいだろ。何の説明も要らなくなるよ。

178 :uy:2012/08/15(水) 18:46:19.62

はーーー ばぐった
Rubyごみかす 

179 :デフォルトの名無しさん:2012/08/15(水) 18:46:32.63
短くて分かりやすいのがベストだよね!

180 :デフォルトの名無しさん:2012/08/15(水) 18:58:34.52
Smalltalkの #(1 2 3) collect: [:x | x*2] って書き方をパクってこなければ
どっちかっていうとPythonっぽいこっちの文法のままだったんだろうな。きっと。
do [1,2,3].map using x; x*2 end

181 :153:2012/08/15(水) 19:14:29.25
>>177
一時変数は悪ではないし、否定しないよ
実際に実用的なプログラムでは、あまりに長いメソッドチェーンを
途中で切って、間に一時変数を入れることがある
ただし、一度代入したら二度と更新しない

問題は変数の「破壊的代入」
たとえば>>162の最後にあるforを使った手続き型スタイルでは、
最初にリスト変数とループ変数に初期値を代入した後、
forループ内でこれら変数をゴリゴリと更新(破壊的に代入)している
これが可読性の悪化とコード品質の低下をまねく要因

なお破壊的代入の無さは、専門用語だと「参照透明性」と呼ばれる

182 :デフォルトの名無しさん:2012/08/15(水) 19:25:04.95
破壊代入が嫌いなら、手続き型言語の世界から去ってもらうしかないね。
表面のコードに表れて無いだけで、結局mapの中で破壊代入しているのだから、一緒だよ。
書いてある場所が違うだけで、本質的な動作が同じなのだから、危険度も同じ。

183 :uy:2012/08/15(水) 19:34:44.27
ライブラリや言語処理系側に破壊的操作をさせるのと、
自分で直に破壊的操作を行う処理を書くのは全然危険度が違うよ

184 :デフォルトの名無しさん:2012/08/15(水) 19:39:26.70
だったら、関数型言語の参照透過性のメリットなど何も無いって事だな。
破壊的代入は全てライブラリにやってもらえば安全なのだから。

185 :uy:2012/08/15(水) 19:43:25.26
頭悪いね

186 :デフォルトの名無しさん:2012/08/15(水) 19:45:30.24
>>114
ブロック内の処理が一つの場合は{}で複数処理はdo end がいいってじっちゃが言ってた

187 :uy:2012/08/15(水) 20:20:56.63
長く書くとわかりやすいって考える奴居るよなw


数学でも長い式を
一時変数に代入するのにな。

188 :デフォルトの名無しさん:2012/08/15(水) 20:22:00.55
do | o |
ってやったら外人に笑われた
なんで?

189 :uy:2012/08/15(水) 20:38:54.52
キチガイなんじゃね

190 :デフォルトの名無しさん:2012/08/15(水) 21:01:43.68
>>188
lolはlaugh out loudlyで(笑)と同じように使われるから、笑えよってことだね。英語圏のコミュニティ行くとよくあるよ。

191 :デフォルトの名無しさん:2012/08/15(水) 21:10:40.01
内包表記が読み難いとか言ってる奴は
数学の素養が無いって自己紹介してることに気付いてないの?
かっこわるいから控えた方が良いよ

192 :デフォルトの名無しさん:2012/08/15(水) 21:13:01.31
集合のアレだと気づくのに半年かかったお

193 :uy:2012/08/15(水) 21:19:39.91
>>191
でも、実際に読みづらいんだろう?

194 :デフォルトの名無しさん:2012/08/15(水) 21:27:25.15
ブロック記法は任意の(ただし関数引数は一つだけの)
高階関数を記述できる分だけ汎用性があるが、
mapとかfilterとかの組み合わせに関してはリスト内包表記のほうが簡潔になりうる

細かい優劣はあれど、matzは内包表記みたいな専用構文を用意するのを嫌った
PythonあるいはHaskellその他のように、頻出する記述に糖衣構文を与えるのは間違っていないと思うが、
Rubyはそれよりもブロック構文による均質性を採ったという事

195 :デフォルトの名無しさん:2012/08/15(水) 21:40:16.38
なんでSmalltlakみたく{ |x| x*2 } をファーストクラスにしなかったの?
そしたらもっと簡潔にも均質にもなったのに。

196 :デフォルトの名無しさん:2012/08/15(水) 21:50:52.54
Pythonの内包表記はプログラミング独特の手続き的なところをない交ぜにしてるから
数学の内包表記は読みやすいからPythonのも読みやすいみたいな論法はちょっとしっくり来ないな

197 :153:2012/08/15(水) 21:57:54.67
>>191
自分は内包表記が読み難いとは思わないね
ただしPythonの場合、局所宣言またはクロージャがないから
せっかくの内包表記構文が台無しになっている
過去スレ19,20で議論になったコードを以下に示す

==== Haskell ====
 data Option a = None | Some a
 ys = [fn x | x <- xs]
   where fn x =
     let
       h = if is_first_page x then generate_header else None
       b = generate_body x
       f = if is_last_page x then generate_footer else None
     in
       (h, b, f)

Haskellには局所宣言としてwhere節があるから、関数fnを定義することで
内包表記を含む式をトップダウンに数学っぽく記述できる

==== Python ====
 ys = (Document.new(h,b,f) for x in xs
   for h in [generate_header() if x.is_first_page else None]
   for b in [generate_body(x)]
   for f in [generate_footer() if x.is_last_page else None])

このPythonコードが何をしているかどうか、はたして一目で把握できるかな?

198 :153:2012/08/15(水) 22:01:18.03
参考として、>>197に関するRubyのコードを過去スレからコピペする

==== Ruby ====
 ys = xs.map { |x|
   h = if x.first_page? then generate_header else nil end
   b = generate_body x
   f = if x.last_page? then generate_footer else nil end

   Document.new h, b, f
 }

Rubyには内包表記構文は無いけれど、普通に書ける(実に初歩的なコードだ)

199 :uy:2012/08/15(水) 22:05:42.94
いやそこは

h = generate_header if x.first_page?
b = generate_body x
f = generate_footer if x.last_page?

だろ

falseだろうとローカル変数は宣言されるから


200 :デフォルトの名無しさん:2012/08/15(水) 22:07:42.58
>>197
HaskellもPythonも使えるから
どっちも楽勝で読める

あとHaskellならそのケースだと内包表記じゃなくて map fn xs だな
短いし読み易い

201 :デフォルトの名無しさん:2012/08/15(水) 22:08:07.08
>>195
確かGroobyはそういう仕様だったから、整合性は何とかなるんだろうけど
実際問題として誰も困ってないんじゃないの
ブロックがリテラルとして書けたとしても、どっちみちブロック付きメソッド呼び出しの時は
ブロックを特別扱いする構文を認めることになるから、特段簡潔になるというほどでも……

いわゆる無名関数を直接操作したいならブロック(Procオブジェクト)ではなくてlambdaが適当で
lambdaに関しては1.9から糖衣構文が入った

202 :uy:2012/08/15(水) 22:09:14.11
Rubyは色々考えながら作っていってる感はあるよね

現在のrubyに>>197
こういうの導入すれば、開発効率は一時的に上がるけど
低脳プログラマは優秀なプログラマが管理してやらないと
意味不明なコード書いて自滅するから
全体パフォーマンスを見れば入れるべきでないものもある

203 :デフォルトの名無しさん:2012/08/15(水) 22:13:47.89
>>197
どっちにしても、酷いコードだ。

204 :デフォルトの名無しさん:2012/08/15(水) 22:16:27.85
メソッドチェインって書いた後から付け足す事って結構あるからね
イテレータやループの書き方は統一されてたほうが良い

205 :デフォルトの名無しさん:2012/08/15(水) 22:17:50.65
この辺りはある程度個人の感性だけど
内包表記が多段ネストし始めるのはさすがに勘弁して下さいっていうか
読むのも書くのも面倒じゃない?

Haskellはまだwhere節で後ろに押しこみ直すことでトップダウンに読めるから
場合によっては許せるかなあと。少なくとも適切な変数名が条件w

206 :デフォルトの名無しさん:2012/08/15(水) 22:22:51.19
内包表記が活きるのはイテレートする変数が
複数になったときじゃねーの

f n = [(x,y,z) | x <- [1..n], y <- [1..n], z <- [1..n], x^2 + y^2 == z^2]

207 :デフォルトの名無しさん:2012/08/15(水) 22:31:21.07
>>201
どうして? ブロックがファーストクラスなら yield や &block なんて小細工いらなくなるし、
複数のブロックを引数として簡単に渡せるから表現の幅も広がるし、
機能も意味もずっと簡潔になると思うよ。

208 :デフォルトの名無しさん:2012/08/15(水) 22:32:31.13
内包表記とか参考演算子なみのウンコやん。
Pythonってそんな誰得非効率機能が特徴なの?ウンコやん。
ついでにRubyもウンコやん。
ラムダ式とかevalが使えんコンパイル言語がなんちゃってevalを実装してるようにしか見えん。ウンコやん。



209 :デフォルトの名無しさん:2012/08/15(水) 22:42:15.44
>>207
もっと具体的に実現例を出してもらわないと
よく分からない

210 :デフォルトの名無しさん:2012/08/15(水) 22:48:10.24
とりあえずsmalltalkは演算子優先順位すらないクソ言語だから
このスレで議論する価値無い
Java以下のウンコの中のウンコ

211 :デフォルトの名無しさん:2012/08/15(水) 22:52:50.85
>>197をPythonで(RubyやHaskellのコード相当で)書くならごく素直に

def preprocess(x):
h = generate_header() if x.is_first_page else None
b = generate_body(x)
f = generate_fotter() if x.is_last_page else None
return h, b, f
ys = [Document(preprocess(x)) for x in xs]

じゃないかと。まずリスト内包で書くことはない

212 :uy:2012/08/15(水) 22:53:01.74
初心者は消えろ

213 :デフォルトの名無しさん:2012/08/15(水) 23:10:42.33
みんな消えたか…

214 :デフォルトの名無しさん:2012/08/15(水) 23:59:55.09
>>209

- 複数のブロックをとるメソッド呼び出しを簡潔に書ける
[1,2,3].find(lambda{ :not_found }){ |e| e>5 }
[1,2,3].find { :not_found }, { |e| e>5 }

- ブロックをレシーバーにできる
lambda{ :do_something }.should_not raise_error
{ :do_something }.should_not raise_error

- ブロックをとるメソッドの仮引数に前置&が不要になる
def meth(&block); other(&block) end
def meth(block); other(block) end

215 :デフォルトの名無しさん:2012/08/16(木) 00:05:36.35
-> をタイプする手間すら億劫っていうのは
ちょっと病気ですよ
Rubyってそういう言語かもしれないけど

216 :デフォルトの名無しさん:2012/08/16(木) 00:06:27.09
>>204
付け足す事もあるけど、途中の処理の内容を変えたり、途中で処理を分岐する事もあるよね?その場合、一時変数を使ってる方がやりやすくない?

217 :デフォルトの名無しさん:2012/08/16(木) 00:11:36.22
>>143
Perl代替で一番成功してるのはPythonじゃない?
Rubyの場合、作者の思惑はともかく、現状はほぼRails専用と言っていいのでは。
Railsを便利に使うためのツールはいろいろあるけど、OSだったりミドルウェアから使うようなRuby製のツールってPerlやPythonと比べて全然無いでしょう。


218 :デフォルトの名無しさん:2012/08/16(木) 00:18:16.38
>>214
>- 複数のブロックをとるメソッド呼び出しを簡潔に書ける
そういう部分でメソッド引数括弧の省略を使うのは筋悪でしょ
現在のRubyのコーディングスタイルでも、引数がある場合は原則省略しないのが主流

あるいは括弧を省略しない場合、確かにルールは単純だけど見栄えがよろしくない
hoge({|x| p x })

そしてブロック構文の仮定として
大部分の高階関数は関数引数を一つしか取らないという
観察結果があるわけだから、一つに特化した構文でも十分

219 :デフォルトの名無しさん:2012/08/16(木) 00:35:02.92
>>217
ここで小物と表現していたのは、ツールと呼ぶのもおこがましいほど小さい
日常の雑務を処理するような小規模スクリプトだよ。ワンライナーも含む

例えばRubyに大量に残ってるPerl譲りの特殊変数とか、
外部コマンドのためにリテラルとか、インタプリタの変な起動引数とか、
色々あるが、おそらく全部そういう小物のためのもの

220 :デフォルトの名無しさん:2012/08/16(木) 00:43:48.75
>>218
しかし関数型言語で圧倒的に利用頻度の高い
関数合成は関数引数を複数取る関数なんだよね
(.) :: (b -> c) -> (a -> b) -> a -> c

Rubyではブロックとブロックを合成して
新しいブロックを作りたくなることは無いの?
xs.map(f).map(g).map(h) を
xs.map(f.g.h) と書けたら良いと思わない?

221 :uy:2012/08/16(木) 01:00:12.30
俺はrubi使いだけど、ちょっとrubyの考えは改めようかな
言語が複雑なことやってるから、実装もバグ取るのも大変なんだろうし
俺が普通じゃないコード書いてるからなんだけど
バグ多すぎてワロタwwww
今日だけで2個踏んだったwwww
なんでだろ、世界でずいぶん使ってる奴いるはずなのに、
俺はもういままでrubyのバグには自分で出したのだけで少なくとも10個以上
どうなってるのこの言語 とりあえずlambda周りとハッシュ周りに何かがある・・・

222 :デフォルトの名無しさん:2012/08/16(木) 01:02:21.44
それがパーサのバグなら諦めろ
Rubyのパーサはどうもならん

223 :デフォルトの名無しさん:2012/08/16(木) 01:11:31.94
rubi使いはフリガナふってろ。初心者って自分のバグを人のせいにするよな。

224 :デフォルトの名無しさん:2012/08/16(木) 01:19:03.05
>>218
201,209が「簡潔にならない」「具体例がないと分からない」というから挙げた例に
横からしゃしゃり出てきて一例だけピックアップして筋悪とか十分とか
結論ありきの難癖つけるってなんなのあんた?

225 :uy:2012/08/16(木) 01:20:06.45
> なんなのあんた?

俺俺。俺だよ。

226 :デフォルトの名無しさん:2012/08/16(木) 01:29:22.60
コミュ障です。

227 :uy:2012/08/16(木) 01:30:59.89
>>223
ひとつは普通に[BUG]ってでた これはlambda周りのバグ

もうひとつは、これはハッシュ周り [BUG]とはでないが、
存在しているはずの変数の中身が一定確率で(1度のイテレーションのみ?)だけ勝手にnilになってる
nil => nil のハッシュなんか追加した覚えないのに両方nil
とりあえずイテレータでまわしてる時に中でこれをやってはいけないっぽい

task = Hash.new
task.marge(...)
task.each do
  task = 新しいハッシュ
end

これをどうにかなくしたらバグらなくなった

いずれも小さなコードで再現させようとしてもバグってくれない
俺がわけわからんコード書いてるせいもあると思う もういやだ

228 :デフォルトの名無しさん:2012/08/16(木) 01:35:09.09
>>227
中級者はバグを回避するコード書くのがあたりまえっえこと。

229 :uy:2012/08/16(木) 01:35:37.63
>>227
[BUG]というのは
テメーのバグっていう意味だよw

230 :uy:2012/08/16(木) 01:36:32.34
>>227
あ,ごめんハッシュのほうは両方nilではないわ
でも何か動作おかしいのは事実

231 :デフォルトの名無しさん:2012/08/16(木) 01:42:31.92
そりゃお前、コンテナをイテレートしている最中にコンテナいじったら、
危ないだろうJK。Rubyに限らずどの言語でもご法度。

232 :デフォルトの名無しさん:2012/08/16(木) 01:43:59.81
>>224
この一例が重要だから214が例示して、218が反論したんだよ

もしブロックが単独のリテラルだったなら

1. Procを簡潔に記述できる
2. ブロック構文に関わる一連の糖衣構文(yield、&block、)が
 通常のメソッド引数括弧の省略という形で統一的に記述できる
3. またこの枠組みでは複数の関数引数の記述も自然にできる

それに対する反論が

1. 関数型スタイルを使いたいならProcではなくてlambdaでいいじゃん(糖衣構文がある)
2. メソッド引数括弧の省略に頼った記法は良くないとされている
 逆に省略しないと記述が煩雑になる。つまり専用構文を用意するのがベター
3. 複数の関数引数は出現頻度が低いことが分かっているから重要でない
 むしろ一引数に特化している事が重要 →再反論:関数合成のような例は?

っていう議論なんだから

233 :uy:2012/08/16(木) 02:12:27.19
もういいじゃんruby最強なんだから
バグがあっても使う価値があるくらいには最強

234 :デフォルトの名無しさん:2012/08/16(木) 08:15:45.11
日本人の韓国旅行終了! 三井住友、韓国旅行者向けの新カード発行延期
http://engawa.2ch.net/test/read.cgi/poverty/1345036192/


韓国旅行者向けの新カード発行延期 三井住友カード

三井住友カードは15日、韓国に旅行する日本人向けに予定していた新たなカードの発行を延期すると発表した。
提携する韓国のカード会社と22日にソウル市内で記者発表会を計画していたが、これも延期する。

韓国の李明博(イ・ミョンバク)大統領の竹島上陸や対日批判などを考慮し、「今サービスを始めるのはふさわしくない」(広報室)
と判断したという。

このカードは、旅行前に日本円で入金しておけば、韓国のお店で韓国ウォンでの支払いができるプリペイド式で、9月上旬から
発行する予定だった。記者発表会は、日本でも人気の高い韓国人俳優らが出席する計画だった。
http://www.asahi.com/business/update/0815/TKY201208150428.html


235 :153:2012/08/16(木) 10:04:35.58
>>211
ん、最終行にはリスト内包表記が見えるけど、気のせいかな?

それはさておき、Pythonでは「ごく普通に」関数を定義して適用するのに対して、
Ruby(および関数型言語)では「ごく普通に」ブロックや無名関数を使って
シンブルな式として表現できる、ということになった
また当たり前だけど、>>211のような関数を定義するコードはRubyでも書ける

これは>>197,198で述べたように、関数型言語風プログラミングにおいて
局所宣言が無いというPythonの欠点、そしてRubyの優位性を示している

236 :デフォルトの名無しさん:2012/08/16(木) 11:03:14.55
無名関数のあるJSの勝利ですね。

237 :デフォルトの名無しさん:2012/08/16(木) 11:05:52.40
>>235
Rubyは関数内関数を素直に定義できないじゃん
Proc と lambda の違いとかキモイし
どさくさにまぎれて関数型言語と一緒にすんなよ

238 :デフォルトの名無しさん:2012/08/16(木) 11:45:22.78
phpでの話なんですが教えて下さい

あるアドレスに下記の様にHTTPヘッダー関数で移動すると返ってくる内容がブラウザに表示されるのですが
header("Location: {$add}") ;

file関数、fgets関数等で下記の様に読み込むと中身がカラッポで入っていません
$data = '' ;
if ($fp = @fopen($add, "r")) {
 while (!feof($fp)) $data .= @mb_convert_encoding(fgets($fp, 1024), "EUC-JP", "auto");
 fclose($fp);
}
$data = htmlspecialchars($data);

file関数、fgets関数等で読み込んで中身を得るにはどうしたら良いでしょうのでか
教えて頂ける様お願いします


239 :238:2012/08/16(木) 12:26:57.50
エラー抑制を外してみました
if ($fp = @fopen($add, "r")) {

if ($fp = fopen($add, "r")) {

そしたら次の様なワーニングが出てきました

Warning: fopen(アドレス) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in 動いてるスクリプト on line 374

どうもアクセス相手側から拒否されている様です
しかしヘッダー関数では取得できる様なのでどうにかしてfile関数等でデータを取り込みたいのですが
どうしたら良いかご存知のかたいらっしゃったら教えて頂ける様お願いします


240 :デフォルトの名無しさん:2012/08/16(木) 12:30:36.27
>>239
WebProg
http://kohada.2ch.net/php/

241 :238:2012/08/16(木) 12:32:19.66
>>240
thx

242 :uy:2012/08/16(木) 14:10:29.16
rubyは[]でかけるLISPとしても使えるんじゃなかった?
メソッド揃えば完全変換できるかもよ

procのlambda違いは有りなんだよ
rubyは同じに見えて微妙に違う動作をするメソッドが数多く存在する
それだけ細かい調整が標準ライブラリで効くってこと

243 :153:2012/08/16(木) 14:13:16.73
>>237
>Rubyは関数内関数を素直に定義できないじゃん

エッ!、Rubyは普通に関数内関数を定義できるよ???
以前(1.8)は関数内関数のスコープに問題があったけど、今(1.9)では解消されたし

・メソッド定義のネスト - Ruby 1.9.3 リファレンスマニュアル
 http://doc.ruby-lang.org/ja/1.9.3/doc/spec=2fdef.html#nest_method

というか、OOPLであるRubyでは、プライベートメソッドとして定義するのが一般的で、
関数内関数はまず目にすることはない
しかも(>>211のPyhtonのような)他LLでは関数定義を「普通」に使うけど、
Rubyならブロックがあるから一度しか適用しない関数は式の中に埋め込むのが「普通」
つまり、(関数内関数を多用せざるをえない他LLと違って)関数内関数を使う頻度は少ない

>Proc と lambda の違いとかキモイし

確かにProcとlambdaの微妙な差異は分かりづらいよね
でもRubyにはブロック構文があるから、(Procやlambdaのような)明示的な無名関数宣言を
使う頻度は比較的少ないし、使うケースでもどちらか一方を使えば済むことが多い
また、言語の微妙な弱点を避けて、良い点を引き出すことに注力することが
(Rubyに限らず)中級プログラマのたしなみの一つだと考える

>どさくさにまぎれて関数型言語と一緒にすんなよ

え、一度も「Rubyは関数型言語である」とは言ってないけど.....???
「関数型言語風プログラミングには(他LLよりも)Rubyは明らかに優れている」と主張している


244 :デフォルトの名無しさん:2012/08/16(木) 14:25:57.61
>>243
> エッ!、Rubyは普通に関数内関数を定義できるよ???

はあ?じゃあ何で関数内関数が外から見えてんだよ

http://ideone.com/4J057

245 :デフォルトの名無しさん:2012/08/16(木) 14:42:18.11
> つまり、(関数内関数を多用せざるをえない他LLと違って)関数内関数を使う頻度は少ない

関数型言語でも関数内関数を多用するけど...?

「関数型言語風プログラミング」って何?
それってただの「Ruby風プログラミング」なんじゃないの?

246 :uy:2012/08/16(木) 14:43:56.36
rubyの仕組みがなんにもわかってないんだな
それは結局selfが省略されているに過ぎない
rubyはすべてがオブジェクトであり、インスタンスは特異メソッドをもつ事が出来る

    self.define_singleton_method :uy do
      p :uy
    end

お前らの大好きなシングルトン

でもこの設計はゴミカスだな
俺様個人の意見を言わせてもらうならdef内のdefは使わないほうがいいよ
普通にlambdaで ->{ } 書いたほうが短いんだからそっち使えばいいじゃん

247 :uy:2012/08/16(木) 14:48:03.05
>>246
すいません、思いっきり間違っていました忘れてください 旅にでます

248 :153:2012/08/16(木) 14:50:55.63
>>244
わざわざideon上のコードを引用しなくても、Rubyの振る舞いは>>243で示した
リファレンスマニュアル「普通のメソッド定義式と同じ」の通りだよ???

確かに、理想的には内側のメソッドが外部から隠蔽されたほうが望ましいことは認める
これが>>211のPythonコードのように、関数定義を多用するのが「普通」、
あるいは関数定義を多用「しなければならない」言語であれば、致命的な欠陥になる
でも>>243で述べたように、Rubyでは関数内関数の必要性がほとんど存在していないんだ

もしも可能であるならば、ブロックやプライベートメソッド定義では読みづらかったり
冗長だったりするけど、関数内関数であれば素直に表現できるコード例を示してほしいなあ...


249 :デフォルトの名無しさん:2012/08/16(木) 14:57:03.42
rubyはそこら中が関数といえば関数だからね
do 〜 endって、でてきたらそれ全部関数だよ

250 :デフォルトの名無しさん:2012/08/16(木) 15:03:34.35
だから関数型言語では関数内関数を多用するって言ってるのに...
関数型言語と違うスタイルなんだから「関数型言語風プログラミング」とか言うなよ

251 :デフォルトの名無しさん:2012/08/16(木) 15:07:46.32
> 確かに、理想的には内側のメソッドが外部から隠蔽されたほうが望ましいことは認める

理想的にはじゃなく、ここが一番大事なところ

252 :uy:2012/08/16(木) 15:08:18.16

proc
Proc.new
lambda
->{ }
def
define_method
define_singleton_method
Module.new / Class.new / Struct.new

こんくらいかな?メソッド内で関数のようなものを定義する方法

動作違うものが、これだけあるんだから動作調べて好きなの使えよ?
defしか使えないバカなの?

253 :デフォルトの名無しさん:2012/08/16(木) 15:23:14.80
>>248
> もしも可能であるならば、ブロックやプライベートメソッド定義では読みづらかったり
> 冗長だったりするけど、関数内関数であれば素直に表現できるコード例を示してほしいなあ...

なんだ、読みづらさや冗長さの観点で批判してたのか?関数型うんぬんは関係なく?
じゃあ>>198に比べて>>211は読みづらくて冗長だからダメって言いたいんだな?
そういうことは最初から言えよ

254 :デフォルトの名無しさん:2012/08/16(木) 15:35:35.20
はよ旅立て。

255 :153:2012/08/16(木) 15:41:10.73
>>245
>関数型言語でも関数内関数を多用するけど...?

うん、関数型言語では関数内関数でプログラムを構築していくのが普通だね
でもRubyはオブジェクト指向言語であり(>>243の最後で書いたように)関数型言語ではないから、
モジュールやクラスでプログラムを構築するのが普通なんだ

>「関数型言語風プログラミング」って何?

「(破壊的代入を含む)副作用を避けた参照透明性のあるプログラミング」(>>181も参照)

これは関数型言語のパラダイムと同じ
もちろん(関数内関数ではない)Rubyでは、入出力や効率(性能や資源)といった理由から
完全に参照透明性のあるコードは書けないけど、それでも副作用を極力避けたり、
参照透明性のある部分とない部分を意識的に使い分ける、あるいは副作用のあるコードを隠蔽する

現実に実用的なテキスト処理プログム開発で試したところ(全体で約20Kstep)、
8割は参照透明性のあるコードで実装することが可能だった
残る2割の部分は、トップレベルの(入出力を含む)メイン処理モジュール群と
最下層の副作用をカプセル化(隠蔽)した内部ライブラリ群になる

256 :avacript:2012/08/16(木) 16:27:56.11
関数型扱えない言語は終わってるよな
rubyとか

257 :uy:2012/08/16(木) 16:51:25.73
rubyは関数型プログラミングも出来て便利だよな

258 :デフォルトの名無しさん:2012/08/16(木) 16:55:24.10
でもOSやミドルウエア、あるいはビジネスアプリにいたるまで
日本製ソフトのシェアはゼロに等しいよね。

259 :153:2012/08/16(木) 16:57:54.51
>>250
>関数型言語と違うスタイルなんだから「関数型言語風プログラミング」とか言うなよ

うん、ググってみたら確かに「関数型言語風プログラミング」は風変わりだった
では、一般的な「関数型プログラミング(functional programing)」と改めよう

260 :153:2012/08/16(木) 17:09:48.97
>>251
>理想的にはじゃなく、ここが一番大事なところ

そう、クロージャやまともなラムダ式の無いPythonのような手続き言語における
関数型プログラミングでは、関数内関数こそが一番大事だよね

Rubyはというと、(>>248で書いたように)OOPLでブロックがあるからそれほど大事じゃないけど....

261 :デフォルトの名無しさん:2012/08/16(木) 17:15:09.50
ラムダの文法を def 1; end にして、
メソッド定義は
@method = def 1; end
こんな感じの文法でよかったんだよ。
func = def 1; end
こう書けばfuncはローカル変数だから外から見えないし。

同じようなものが一杯ありすぎる。
C++みたいに厳しいパフォーマンスが求められるってわけでも無いのにさ。
こんな行き当たりばったりな言語を良しとしている人は、
さぞプログラムも行き当たりばったり何だろうな。
かといって、ラムダの弱いPythonは土俵にすら立ててないのだが。

普及しててまともなLLって無いのかね。
もしJSにブロックスコープがあったなら、かなり良い言語になりえたんだがな。

262 :uy:2012/08/16(木) 17:42:47.29
>>261
おいバカ
これ

lambda ↓

->{ }


これlambda


263 :デフォルトの名無しさん:2012/08/16(木) 17:43:38.98
ラムダしか知らないのかよお前はw

264 :デフォルトの名無しさん:2012/08/16(木) 17:48:13.46
旧世代的なラムダ脳にはリスト内包表記、イテレータ、ジェネレータ、デコレータを上手く使うPythonicなコードは理解出来ない
なんとかラムダで書こうとするのは、どの言語でもCみたいなコードを書く奴と何も変わらん

265 :153:2012/08/16(木) 17:59:30.07
>>261
>ラムダの文法を def 1; end にして、 ....(以下、省略)

構文の簡潔さという意味では、>>83で紹介したSML(Standard ML)が理想に近いのではないかと
【ラムダ式】   fn hoge x y = <expr>
【条件分岐式】  if <expr1> then <expr2> else <expr3>
【多分岐式】   case <expr> of <pat1> => <expr1> | <pat2> => <expr2> | ....
【代入(束縛)】 val x = <expr>
【関数定義】   fun fuga x y = <expr>
【局所宣言式】  let val x = <expr> fun fuga x y = <expr> in <expr>
【モジュール定義】structure bar = struct <declarations> end
構文要素が必ず予約語で始まっていることがポイントになる
また ;(セミコロン)は演算子であり、式「a ; b」は(aを捨てて) b の評価値を返すという意味になる
結果として言語仕様はコンパクトにまとまっているので習得が容易であり、
しかも言語全体の公式な形式的定義が存在するという特異な存在となっている

・Amazon.co.jp: The Definition of Standard ML: 洋書
 http://www.amazon.co.jp/The-Definition-Standard-Robin-Milner/dp/0262631814/

>もしJSにブロックスコープがあったなら、かなり良い言語になりえたんだがな。

これは同感だね
さらに条件分岐(if や switch)が文(statement)ではなく式(expression)であることも大切だと思う

266 :デフォルトの名無しさん:2012/08/16(木) 18:07:02.49
そう思ってしまうのはクロージャがないC脳だから。

内から外へのスコープを区切るものは関数しかない、という単純さが損なわれる。
クロージャがあるからそれだけでも既にややこしくなってるのに。

267 :153:2012/08/16(木) 18:11:28.09
>>264
論よりコード

268 :デフォルトの名無しさん:2012/08/16(木) 18:35:16.39
つまり、日本国はこの町並みを維持できる限り安泰ということだから、
大声張り上げて街中をデモ行進する人は宇宙空間にでも行って欲しい。

269 :153:2012/08/16(木) 18:39:03.55
>>265のカキコの中で、最後の「>もしJSにブロックスコープがあったなら、」以降を取り消す
ブロックスコープをスコープと早合点していた



270 :デフォルトの名無しさん:2012/08/16(木) 18:42:06.27
>>267
Closures in Python (part 1)
http://ivan.truemesh.com/archives/000392.html
>(ie. use a "list comprehension" - I think it reads a bit easier than using the map/lambda).

271 :153:2012/08/16(木) 18:53:18.70
>>270
リンク先を眺めたけど、これらの例というのは(説明も何も無いから)
RubyでもPyhtonでも同レベルで簡潔に書けるコードに見える
これらの例について、いかにPythonが優れているかを「>>270自身の言葉で」語って欲しい
あるいは>>197,198のように、明らかにPythonが優位性であることが分かる例を希望する

これじゃバトルにならんのだよ....

272 :デフォルトの名無しさん:2012/08/16(木) 18:54:43.69
>>271
別にRubyが劣ってるなんて言ってないよ
馬鹿が譫言のようにクロージャクロージャと連呼してたから
ああ、こいつはPythonのことをあまり知らないんだなあ、と思っただけ

273 :デフォルトの名無しさん:2012/08/16(木) 18:55:24.50
Pythonが優位であることが分かる例か。シェアだな。

274 :153:2012/08/16(木) 18:56:07.05
>>269(>>265)を再訂正 ....orz

X: スコープと早合点していた
O: ブロックと早合点していた

275 :デフォルトの名無しさん:2012/08/16(木) 18:56:16.68
なお>>197,198でPythonが明らに劣勢であることを示せてると思ってる所にも同情する

276 :153:2012/08/16(木) 19:00:35.26
>>272
では、そのPythonのクロージャとやらを使って、>>211を書き直して欲しい
Pythonにはクロージャがあるから、関数定義無しに書けるよね?

277 :デフォルトの名無しさん:2012/08/16(木) 19:01:46.12
>>273
それに伴うライブラリの充実とかコミュニティの活発さはあるね

278 :デフォルトの名無しさん:2012/08/16(木) 19:02:19.29
そもそも関数定義無しに書けなきゃダメって
勝手にルール作ってるところがおかしい

279 :デフォルトの名無しさん:2012/08/16(木) 19:02:23.31
なぜ関数を定義したらいけないのか理解できない

280 :デフォルトの名無しさん:2012/08/16(木) 19:05:32.80
領空侵犯機 ロシア約68%、中国約25%、その他約7%

281 :153:2012/08/16(木) 19:09:44.52
>>275
独り言かな?

282 :デフォルトの名無しさん:2012/08/16(木) 19:09:59.70
153はダブルスタンダードすぎる

283 :デフォルトの名無しさん:2012/08/16(木) 19:12:19.57
>>279
そりゃ明らかに面倒だろ。
いまどき、あのC++にすら無名関数やラムダがあるのに。
あの保守的なC++が取り入れたんだよ?
しかも文法を [&](int i)-> int { return i; } って糞キモくしてまで取り入れた。
今までのC風の関数のスタイルを捨ててまで、取り入れたんだよ。
今までになかったこと。それぐらい無名関数やラムダは求まれた。
int func( int i ){ return i; }
これが
auto func = []( int i ) -> int { return i; }
こんなになっちゃったんだよ。こんなに見た目が変わったんだよ。
それを受け入れたんだよ、あのC++er達が。その意味を考えろ。

284 :デフォルトの名無しさん:2012/08/16(木) 19:15:38.78
>>283
いや上の例を見ても明らかとは思えないけど
別にC++erだって全ての関数をラムダ式で書くわけもなく、普通に関数定義するし

285 :デフォルトの名無しさん:2012/08/16(木) 19:21:31.64
>全ての関数をラムダ式で書くわけもなく、普通に関数定義するし
普通の関数もかけるのは当たり前で、
それだけじゃつらいからラムダを導入したって話だろ。
論点ずれてるだろ。何言ってんだか。
ラムダが要らないものならわざわざ変な文法作ってまで導入するかよ。

286 :デフォルトの名無しさん:2012/08/16(木) 19:23:37.43
>>285
上のはラムダで書くべき例なの?

287 :153:2012/08/16(木) 19:26:19.29
>>278,279
あらゆる関数型言語であれば関数定義無しにかけるから、
それは「関数型プログラミング」の特徴の一つである、という理屈
だってPythonだけが関数定義が無ければ書けないんだから、
マイナス評価されても当然だろ?

というかさ、もしルールに不満があるならそれを最初に主張すべきだった
具体的には、>>235の指摘に対して即座に反論すればよかったのに....
いろいろゴネたあげく、技術論で反論できないからルールに不満を言うのは
カッコワルイと思うよ

288 :デフォルトの名無しさん:2012/08/16(木) 19:29:06.48
>>287
つまり、実用上では何の意味もない所で優劣を競ってるのか?

289 :デフォルトの名無しさん:2012/08/16(木) 19:30:21.57
昔からお題を出し続けてる奴だろうけど、出題がゴミすぎるよね

290 :デフォルトの名無しさん:2012/08/16(木) 19:30:51.67
実用上問題がなければC++にラムダが導入されるわけ無いだろ。
あんな変な文法にしてまで、無理にでも導入したんだぞ。

291 :デフォルトの名無しさん:2012/08/16(木) 19:36:11.33
ラムダの有用性は、このお題では1ミリも示せなくても、いくらでもあるだろ
C++がさらに糞言語化したからラムダは有用!とか言わなくてもさ

292 :デフォルトの名無しさん:2012/08/16(木) 19:42:16.59
「こんな書き方も出来る、こんな書き方も!」


で?もっと身のある話はないのかよ

293 :デフォルトの名無しさん:2012/08/16(木) 19:55:52.82
http://www.youtube.com/watch?v=cjhV2OzifSg&feature=relmfu

294 :デフォルトの名無しさん:2012/08/16(木) 20:14:22.38
>>287
あれ?お前>>255でRubyはOOPLだから関数内関数無くても良いんだとか
言ってなかったっけ?
関数型言語では関数内関数あるんだからRubyではdefの入れ子で
関数内関数が定義できないのはマイナス評価されても良いの?

295 :デフォルトの名無しさん:2012/08/16(木) 20:16:11.07
Pythonに無名関数(複数行lambda)あってもいいじゃんと思ってたけど

[Python-ideas] a new lambda syntax
http://mail.python.org/pipermail/python-ideas/2009-October/006208.html
めぐりめぐってGuidoのコメント
http://mail.python.org/pipermail/python-ideas/2009-October/006306.html

http://mail.python.org/pipermail/python-ideas/2009-October/006228.html のコードをもとに
ys = [Document(lambda{
    h = generate_header() if x.is_first_page else None
    b = generate_body(x)
    f = generate_fotter() if x.is_last_page else None
    return h, b, f}) for x in xs]

こういうコード書く人が出てくるからやめたほうがいいね

296 :uy:2012/08/16(木) 20:16:17.97
それはマイナスだよ
ゴミ

297 :デフォルトの名無しさん:2012/08/16(木) 20:18:08.51
(1)Pythonのlambdaじゃ書けなくて
(2)関数を定義したら冗長になってしまうほど短い

そんな例題があればいいんだよ

298 :デフォルトの名無しさん:2012/08/16(木) 20:22:49.99
153は出す御題もゴミの上に
都合の悪いレスはスルーするというゴミっぷり
ゴミの中のゴミ

299 :uy:2012/08/16(木) 20:23:21.31
勘違いされやすい文法はゴミカスだ

300 :デフォルトの名無しさん:2012/08/16(木) 20:24:33.39
私が改造したソース帰ってこないじゃん。

301 :uy:2012/08/16(木) 20:33:38.40
ゴミだからだろ

302 :デフォルトの名無しさん:2012/08/16(木) 20:38:52.33
8時半だしお家かえる

303 :デフォルトの名無しさん:2012/08/16(木) 20:42:02.02
>>287
いやいや、スレ読んでみたら、>>211に対して後付けで
関数定義はダメって言い出してるけど?

後付けでルールを追加するのってカッコワルイね

304 :uy:2012/08/16(木) 20:53:09.03
rubyのメソッド内メソッド定義はカス
しかしそれをマイナス点にしても最強なのだった

305 :デフォルトの名無しさん:2012/08/16(木) 20:57:19.93
Rubyはひたすらendでも打ってろ

306 :153:2012/08/16(木) 21:05:50.99
関数型言語としてHaskellだけを取り上げて「あらゆる関数型言語(>>287)」と言うのは
不公平だと思うから、それ以外の関数型言語のコード例について、過去スレ19,20からコピペする

なお、このコードは>>286氏ご希望のラムダ式で書く典型的なコード例となる

==== Standard ML ====
 datatype 'a Option = None | Some of 'a
 val ys = map (
   fn x =>
     let
       val h = if is_first_page x then generate_header else None
       val b = generate_body x
       val f = if is_last_page x then generate_footer else None
     in
       (h, b, f)
     end
 ) xs

同等な多言語のコード例については以下を参照
・Haskell >>197上段
・Python >>197下段および>>211
・Ruby >>198

307 :デフォルトの名無しさん:2012/08/16(木) 21:10:23.55
関数型言語の話をしたいだけなんだな、こいつは

308 :デフォルトの名無しさん:2012/08/16(木) 21:10:42.85
お題がクソだと散々言われてるのに
話を引っ張る空気読めないっぷりがウケるw

309 :uy:2012/08/16(木) 21:15:05.50
たまに関数型言語厨が迷い込むよね
同じ奴なんですか?

310 :153:2012/08/16(木) 21:19:31.47
>>294
>関数型言語では関数内関数あるんだからRubyではdefの入れ子で
>関数内関数が定義できないのはマイナス評価されても良いの?

正確には「関数内関数定義で内部の関数が外部から隠蔽されない」だね
もちろんこの点はRubyのマイナス評価であると認めるよ
また、アンカも間違いで(>>255ではなくて)>>243じゃないかな?

さらに言えば、>>297自身も(>>243,248から)引用しているように、
このマイナス評価はRubyにとっては致命的な欠点ではない
もしも致命的ではないという意見が不満ならば、
>>248の最後でリクエストしたように具体的なコードで語って欲しい

論よりコードだ

311 :デフォルトの名無しさん:2012/08/16(木) 21:23:03.20
>>310
> もしも致命的ではないという意見が不満ならば、

Pythonの関数定義が致命的だって話は何時同意を得たんだ?
少なくとも>>211は関数定義で全く問題ない

せめて>>297を満たす御題くらい作れよ
論よりコードなんだろ?

312 :デフォルトの名無しさん:2012/08/16(木) 21:23:21.86
>>310
Pythonユーザなら誰も書かないようなコード貼っといて論よりコードは流石になかろう

313 :153:2012/08/16(木) 21:23:30.23
>>289
その「都合の悪いレス」とやらのレス番を書きなさい
そうすれば反論してあげるよ
それとも反論されるのが怖いヘタレかい?

314 :デフォルトの名無しさん:2012/08/16(木) 21:23:47.98
関数型言語としてどれが素晴らしいかって、HaskellとかSMLが素晴らしんじゃないでしょうかw
でも関数型言語スレって盛り上がらないんだよな。TIOBEのランキング見れば分かるけど
そもそも利用者が少ない。LispはまだしもHaskellとかMLとかは、マイノリティすぎる
結局、関数型言語としての評価軸って対して価値がないのかなと思う
まあノイジィマイノリティのノイジィ具合は全てのパラダイムの中で群を抜いてるだろうけど
それに対応してRuby、Pythonその他の言語にも導入されてる機能もあるし
導入された分は使える範囲で使えればいいと思うし、それで足りないなら関数型言語を使うしかないけど
そういう選択をする人が少ないのも事実で、関数型言語でなければならないという観点は間違ってる気がする

315 :153:2012/08/16(木) 21:33:07.50
>>303
リスト内包表記(Haskell: >>197)にせよラムダ式(SML: >>306)を使うにしても、
関数型言語プログラマであれば「再利用されないコード断片」は
関数定義無しでも書けるのは「常識」なんだから、そんなルールはわざわざ書かなかった

今の議題は「LLにおける関数型プログラミングの適性比較」なんだよ

316 :デフォルトの名無しさん:2012/08/16(木) 21:34:19.08
「LLにおける関数型プログラミングの適性比較」というスレでやれば?

317 :デフォルトの名無しさん:2012/08/16(木) 21:34:28.89
えーその議題いつ決まったのーーーー!!!
さすがに突っ込ませてもらうわ。
とりあえず君は関数型言語の巣へ帰った方がよいね。

318 :デフォルトの名無しさん:2012/08/16(木) 21:35:10.02
>関数型言語プログラマであれば

(笑)

319 :uy:2012/08/16(木) 21:36:45.56
関数型言語でスクレイピングしたいんですけど
あ、やっぱあいいや

320 :デフォルトの名無しさん:2012/08/16(木) 21:48:26.95
>>295
> I believe that the main reason
> people keep arguing for anonymous blocks (and this will never stop) is
> simply that there is **a certain segment of the programmer** population
> that is used to solving a large variety of problems with anonymous
> blocks and that **they don't want to learn how to solve each of those
> cases using the existing tools in Python.** (強調引用者)

どう考えても>>153そのものです。本当にありがとうございました

321 :153:2012/08/16(木) 21:49:45.82
>>312
では、議題(>>315)に沿った「Pythonユーザなら誰でも書くコード」を提示しなさい

>>272氏がPythonにもクロージャは存在すると指摘してくれたので
>>276でコード例をリクエストしてレスを待っているんだけどな....
残念ながら、今のところ具体的なPythonコードを書いてくれたのは>>211一人だけだ
過去スレ19,20でも結局は一人だけだったし、もしかして同じ人かなあ....

322 :デフォルトの名無しさん:2012/08/16(木) 21:51:22.33
俺RubyもPythonもHaskellもOCamlも仕事で使った事在るけど
こんなスレで関数型言語アピールとかアホとしか思えん
関数型言語が好きなら黙って使ってろっての

323 :デフォルトの名無しさん:2012/08/16(木) 21:52:27.55
なんでお前に命令されなきゃいかんのか分からんし
なんか前もお前の間違いを訂正したのは
「ああ、そうなんだ、ふうん。でも俺の主張は間違ってない。じゃあこのお題はどうよ?」
みたいな対応しかしなかったし、関わるだけ無駄。関数型云々について、いつまで続けるんだ?
もう結論出して良いよ。それでLLの優劣なんて何も決まらんから

324 :デフォルトの名無しさん:2012/08/16(木) 21:52:32.06
覚えた言葉をすぐに使いたがる小学生。

325 :デフォルトの名無しさん:2012/08/16(木) 21:53:32.53
>>321
まず議題が承認されてないじゃん

というかPythonいけてねえって主張するあなたのほうに立証責任がある
「なんでPythonで(名前つき)関数定義するのがよろしくないのか」を示すべき

326 :デフォルトの名無しさん:2012/08/16(木) 21:55:05.79
315は関数型言語で遊ぼう!みたいな本が大好きな関数型マニアだってことは分かるけど
このスレで何をしたいのかは理解できない

327 :デフォルトの名無しさん:2012/08/16(木) 21:57:21.87
このスレ住民は現実的な意見が多いな
関数型は効率というベクトルからは外れた趣味だもんな

328 :デフォルトの名無しさん:2012/08/16(木) 22:02:23.59
Pythonディスりたければ、俺みたいに、
あの糞みたいな、ネスとスコープの仕様をつつけば良いのに。
あれだけは生粋のパイソニストでも擁護不可能だからね。
擁護しようものなら、
今になってnonlocal追加した事実に反してしまうしな。

329 :デフォルトの名無しさん:2012/08/16(木) 22:02:35.37
というか、ある程度はそのプログラミング言語の用途とかが競合しないとさ

330 :デフォルトの名無しさん:2012/08/16(木) 22:06:00.91
ガチでぶつかるのはPythonとRubyぐらいでしょう。
しかも外国VS国内みたくなってるから余計に。
他の言語は大体用途が被らないし、
その用途でのスタンダードを確立しているものばかりだからな。
shとJSで喧嘩するのは無理。

331 :デフォルトの名無しさん:2012/08/16(木) 22:07:22.74
>>328
nonlocalの追加は、リストにする手間が省けたという意味では確かに改善だけど
スコープ自体は問題なくね。だからこそnonlocalが要るんだし

332 :153:2012/08/16(木) 22:08:05.65
>>311
>せめて>>297を満たす御題くらい作れよ

え、>>197,198,306の御題は>>297を満たしているけど、何か?

> (1)Pythonのlambdaじゃ書けなくて

 ==> わざわざ複数の引数を渡しているから、Pythonのlambdaじゃ書けない
    (タプルを使えば書けないことも無いかもしれないけど冗長になる)

> (2)関数を定義したら冗長になってしまうほど短い

 ==> 1カキコ内に収まるほどのコードなので、十分に短い
    しかも再利用されないコード断片なのだから、関数定義が冗長なのは明らか
    (Pythonの無名関数(=ラムダ式)って、一体何のために存在してるの?)

また、お題について不満があるなら、それを最初に(>>198の直後に)主張しないとね
散々ゴネたあげく後出しでブーブー文句を言うのはカコワルイよ

333 :デフォルトの名無しさん:2012/08/16(木) 22:08:32.79
>>328
nonlocal(酷い名前だ)を追加したPython3ではネストスコープの問題は無いの?

334 :デフォルトの名無しさん:2012/08/16(木) 22:09:07.30
じゃあ前もって言うけど、今後二度とクソレスすんな

335 :デフォルトの名無しさん:2012/08/16(木) 22:10:44.41
>>332
>> (2)関数を定義したら冗長になってしまうほど短い 

>>211のコードは>>197のHaskellや>>306のSMLより簡潔だけど?
ああ関数型言語は冗長なのか

336 :デフォルトの名無しさん:2012/08/16(木) 22:11:12.57
皆が153みたいに粘着してないんだから、後から文句言うなとか文句言ってる時点で頭おかしい
間違いは素直に認めろよ

337 :デフォルトの名無しさん:2012/08/16(木) 22:13:45.93
間違いを認めるなんて無理だろうから
目の前のPCを破壊して二度と書き込まないでほしい

338 :デフォルトの名無しさん:2012/08/16(木) 22:15:45.76
>>330
RubyとPerlは?
というかPerlが完全に空気化してるのは、負けたからか?
まだそこそこ使われてるイメージだけどなあ

339 :153:2012/08/16(木) 22:16:29.83
>>314
>関数型言語でなければならないという観点は間違ってる気がする

ああ、これについては同感だね
現状のどの関数型言語も文字列、パターン、ハッシュの操作に難があるから、
現行LLであるPerl/Python/Rubyを置き換えるには無理があると思う

ただし、関数型言語にも良い特性がある訳で、実際に(LLを含む)多くの言語に影響を与えている
だから自分は「LLにおける関数型プログラミング」に注目している

340 :デフォルトの名無しさん:2012/08/16(木) 22:18:23.40
>>331
意味わかんねー。問題があったからnonlocalが追加されたんだろ。
しかもnonlocalが有るんなら、代入のある無しでスコープが変わる糞仕様は要らないだろ。
互換性のために残っちゃってるけど。
代入が無ければネストスコープ。
代入が有ればローカルスコープ。
しかしnonlocalが有れば代入があってもネストスコープ。
はぁ、糞ややこしいな。
代入の有る無しと、nonlocalの有る無しの、
二箇所を確認しないといけないなんて。
直感的でも無いしな。
しかし、代入の有る無しでスコープ切り替わるってのは意味分からないよな。
代入は「代入」だろ。代入に別の意味持たせるなよ。

341 :デフォルトの名無しさん:2012/08/16(木) 22:18:38.00
>>339
LLにおける関数型プログラミング
http://toro.2ch.net/test/read.cgi/tech/1345123070/

お前一人が明らかに邪魔なので、こちらでどうぞ

342 :デフォルトの名無しさん:2012/08/16(木) 22:21:13.16
>>340
いや互換性はもはやないよ。あと、代入するならnonlocalだよ

343 :デフォルトの名無しさん:2012/08/16(木) 22:24:19.36
>>332
再利用しないものに名前を付けるのが冗長だというなら
>>197にあるh,b,fという一次変数も冗長で不要

344 :デフォルトの名無しさん:2012/08/16(木) 22:24:22.12
>>333
ああ、問題残ってるよ。代入の有る無しでスコープが切り替わる問題が。
互換性のためか残っちゃってるけど、
nonlocal追加したんなら、思い切ってこの糞仕様は廃止すべきだったな。
nonlocal有りならネストスコープ、無しならローカルスコープ。
一貫してそれでよかったんだよ。シンプル、単純、分かりやすい。
スコープ調べるのに代入の有る無し調べるとか意味わかんねー。
折角nonlocal追加したのに、なぜに。
二箇所調べなきゃならなくなったから、状況はより悪化したともいえる。

345 :デフォルトの名無しさん:2012/08/16(木) 22:25:04.92
>>340
shadowingの概念知らんの?

346 :デフォルトの名無しさん:2012/08/16(木) 22:26:16.84
>>344
ちょっと待てよ。nonlocal追加以前はそもそも代入不可だろ

347 :デフォルトの名無しさん:2012/08/16(木) 22:27:08.83
代入と宣言の区別もつかんアホがスコープ批判か...

348 :uy:2012/08/16(木) 22:27:35.56
perlは終了
jsは用途が違う
PHPはいわずもがな
pythonは日本じゃ流行らない


rubyですね

349 :デフォルトの名無しさん:2012/08/16(木) 22:30:33.87
>>346
いや、代入できるよ。ローカルスコープの変数になるけどな。
代入があっても、nonlocalならネストスコープ。
nonlocal無くても、代入が無ければネストスコープ。
あー超ややこしいね。
単に、nonlocal有り/無しで、ネスト/ローカルが切り替わる
方が直感的で良いよなぁ。

350 :デフォルトの名無しさん:2012/08/16(木) 22:31:24.90
>>349
いや、nonlocalを何のために使うのか理解してないでしょw

351 :デフォルトの名無しさん:2012/08/16(木) 22:34:27.06
>>349
その側の変数には代入できない。それを可能にするのがnonlocal

352 :153:2012/08/16(木) 22:34:31.89
>>335
え、単純なステップ数で比較しているの!

こちらとしては「再利用されない(一度しか使われない)コード断片を
わざわざ関数として定義するのは無駄(=冗長)」と言ってるだけだけど、これは非常識なのかな?
というかPythonの無名関数(=ラムダ式)は、いったいぜんたい何の為に存在してるんだろう?
ああPythonのラムダはやっぱり「まがい物」なのか


353 :デフォルトの名無しさん:2012/08/16(木) 22:35:25.54
>>351訂正:その側→外側
globalに似てて、globalとも違うから、いいネーミングだと思うけどなあ

354 :デフォルトの名無しさん:2012/08/16(木) 22:37:12.96
>>350
その変数がネストスコープであることを示すためだ。
しかし、nonlocalが無くても、参照のみならネストスコープだ。
ここがまずおかしいね。普通、ローカル変数となるべきところだ。
そして、(代入無しで参照しているから)プログラムはエラーで落ちなければならない。
普通そういう動作が求められるところ。

355 :デフォルトの名無しさん:2012/08/16(木) 22:40:05.99
そんな基地外スコープの言語がつかわれてる理由ってなに

356 :デフォルトの名無しさん:2012/08/16(木) 22:42:12.88
>>351
なぜnonlocal無しで代入は出来ないのに参照は出来るんだ?
そこがまずおかしいと思わないと。しかも完全なリードオンリーならまだ使い道もあるが、
実際にはメンバ変数を変更したりは自由なんだからCのconstの代わりとしても役に立たない。
別に狙ったものでもなんでもなくて、代入で宣言を代用したことによる単なる文法上の不備でしかないからな。
しかし代入の有る無しでスコープの変わるカス仕様を擁護できるとはおめでたい。
そういう頭じゃないとPythonに惚れ込むのは無理なのか。

357 :uy:2012/08/16(木) 22:44:18.14
なんかpython使いたくなってきた
スコープは基地外なほうが便利なこともあるんじゃない

358 :デフォルトの名無しさん:2012/08/16(木) 22:44:18.55
2.xは外側の変数を書き換えられなかったけど、3.xは明示すれば書き換えられるようになっただけじゃね
なにを混乱するんだろう

359 :デフォルトの名無しさん:2012/08/16(木) 22:45:56.65
>>356
局所変数を定義したら外側のスコープの
同名の変数は直接見えなくなる
Cで書けばこういうことね

int x = 0, y = 0;
{
    int x = 1;
    printf("%d,%d\n", x, y);
}
printf("%d,%d\n", x, y);

こんな簡単なことも分からない馬鹿って生きてる意味あるの?

360 :デフォルトの名無しさん:2012/08/16(木) 22:47:51.21
>>352
Pythonのラムダ式は要らんね
ただ再利用されなくても関数として定義するのは言語問わず無駄ではないよ…マシンには無駄かも知れないが
コードを読む際には処理の区切りや、その処理の区切りにとって必要なデータは何なのか、などが明確になる

361 :uy:2012/08/16(木) 22:48:23.51
>>359
それはCのゴミカスコープ

362 :デフォルトの名無しさん:2012/08/16(木) 22:51:18.10
>>359
だからそれがカス仕様だって言ってるんだ。

>局所変数を定義したら外側のスコープの同名の変数は直接見えなくなる

それはごもっとも。しかしだ、問題はそこじゃない。
変数の宣言に代入を代用しているから、代入しようとすると宣言する羽目になって、
お前の言う、「局所変数を定義したら外側のスコープの同名の変数は直接見えなくなる」
に陥ってるんだ。だから変数の宣言と代入が別の構文なら、こういう問題は発生しない。
宣言せずに、代入だけすれば、その側のスコープの変数に代入できるからな。
そこがまずミスってるわけ。そんで今になってnonlocal追加。余計にカオス。
他の言語で見られるようなvar方式の方がましだったってわけ。

363 :153:2012/08/16(木) 22:52:20.86
>>341
お、わざわざスレを立ててくれたんだね、ありがとう
早速、Python関連サイトへのリンク集をカキコしておいたよ

では、このスレでは議題が「Pythonにおけるnonlocalの是非」へと移ったからみたいだから、
(このスレでは)しばらくROMにまわることにする

364 :デフォルトの名無しさん:2012/08/16(木) 22:53:35.57
いや、そんなに混乱することコレ?w
なんか本当に混乱して全く理解できない状態で説明してるんだよね

365 :デフォルトの名無しさん:2012/08/16(木) 22:54:19.53
>>363
お前の引き出しの少なさに唖然とするわ
というかお前Pythonのこと何も知らんくせにPythonのリンク貼るなカス

366 :デフォルトの名無しさん:2012/08/16(木) 22:55:12.21
var: 局所変数を宣言するときに付ける
nonlocal: 外側のスコープの変数へ代入するときに付ける

局所変数の宣言の方が沢山書くんだからvarの方が冗長

ていうかnonlocalが無ければ外側の変数に代入できないんだから
混乱するのはアホだけだ

367 :デフォルトの名無しさん:2012/08/16(木) 22:55:34.09
>>363
良かったね^^
これで思う存分お前のやりたい議論が出来るね^^

368 :デフォルトの名無しさん:2012/08/16(木) 22:58:26.10
簡単に言えば、「何で代入したいだけなのに勝手に宣言しちゃうわけ?」ってこと。
代入と宣言はまったく別のものだろ。
代入は代入だし、宣言は動的型言語の場合スコープを決めるためのものだ。
一緒くたにしてしまって、使い分けできなくなってしまって不便になったものだから、
あとからnonlocal追加。塩と砂糖を混ぜておいて、後から塩だけ分離するようなものだ。
はじめから混ぜるな。あたりまえ。

369 :デフォルトの名無しさん:2012/08/16(木) 23:00:16.56
いやだから、nonlocalの追加で解決したんだろ?w

370 :デフォルトの名無しさん:2012/08/16(木) 23:00:51.21
>>366
自分で書く場合は混乱しない。問題はは他人のソースを読む時。
ある変数のスコープを調べたい時、nonlocalと代入の有る無しの両方を確認しないと
スコープが確定しない。


371 :デフォルトの名無しさん:2012/08/16(木) 23:03:05.53
そうかなあ、混乱するコード見せてよ

372 :uy:2012/08/16(木) 23:03:18.38
uyを分離するにはpythonの話題にすればいい
だったら最初から混ぜるな!

373 :デフォルトの名無しさん:2012/08/16(木) 23:03:35.02
>>370
> 自分で書く場合は混乱しない。問題はは他人のソースを読む時。

いや、お前明らかに混乱してたろww 面白い奴だな

374 :デフォルトの名無しさん:2012/08/16(木) 23:06:00.64
>>369
解決していない。代入の有る無しでスコープが変わる糞仕様は残ったまま。
代入で宣言を代用する、アホな発想は残ったまま。
便利な万能調味料を作ろうとして、塩と砂糖を混ぜたのが今までのPython。
使い分けできなくなって困ったから、そこから塩だけ分離する機能をつけたのが新しいPython。
しかしだ、小学生でも言うぜ?
はじめから混ぜなければ、あとで分離する必要は無いのにって。

375 :デフォルトの名無しさん:2012/08/16(木) 23:07:31.61
宣言するの面倒じゃん

376 :デフォルトの名無しさん:2012/08/16(木) 23:09:13.91
代入でスコープが変わるって何?
代入で宣言するから、宣言でスコープが決まるだけでしょ

377 :デフォルトの名無しさん:2012/08/16(木) 23:10:17.73
>>374
だからお前がアホなのは分かったって

378 :デフォルトの名無しさん:2012/08/16(木) 23:11:41.04
nonlocalも宣言だから、別に矛盾してないよなあ

379 :デフォルトの名無しさん:2012/08/16(木) 23:13:36.05
>>375
なぜか知らないが、君がそう勘違いしているだけ。
たとえ宣言をしなくて良かったとしても、
どの道、初期化してからしか変数を使用できない。
さすがに初期化するの面倒じゃん、とは言えないでしょ。
初期化は必ず必要。だから、初期化するついでに宣言すればよい。
手間は変わらないということ。varが嫌なら、i @= 0とかでも良い。
何でも良い。普通の代入と宣言付き代入の区別さえ付けばよい。

380 :デフォルトの名無しさん:2012/08/16(木) 23:15:09.84
>>379
i @= 0とかいくらなんでもキモすぎだろ。そういう言語があるの?

381 :デフォルトの名無しさん:2012/08/16(木) 23:16:46.28
>>376
なんで代入で宣言するんだよ。宣言無しの普通の代入は?
代入と宣言は別のものだろ。代入は代入。宣言はスコープを決めるもの。
ぜんぜん動作が違う。なぜ両者を混ぜる?そしてなぜ後で分離する(nonlocal)?
ナンセンスだろ。馬鹿げてるって分からない?

382 :デフォルトの名無しさん:2012/08/16(木) 23:16:53.87
> i @= 0
Perlに倣ってシメジ代入演算子と命名しました

383 :デフォルトの名無しさん:2012/08/16(木) 23:17:30.34
PythonはNoneにappendしたらリスト作ってほしい

384 :デフォルトの名無しさん:2012/08/16(木) 23:18:27.99
リストとNoneを返す関数の返り値にappendするならいいけど
それ以外の場合はろくなことにならない悪寒

385 :デフォルトの名無しさん:2012/08/16(木) 23:18:54.59
>>381
便利だからだろ。それで必要な所だけで宣言するようにしたんだから
お前の案よりエレガントじゃね

386 :デフォルトの名無しさん:2012/08/16(木) 23:19:35.83
>>380
宣言が i := 0 って言語なら有る。
@=はキモいけど、今回あえてそう書いたのは、
プロポーショナルフォントだと「:」が潰れて:=と=の区別がつきにくく、
掲示板に投稿するのには向いて無いから。
でも実際なんでも良い。普通の代入と宣言付き代入の区別さえ付けば。

387 :デフォルトの名無しさん:2012/08/16(木) 23:23:04.62
動的言語を使わないほうが精神衛生上良いのでは…

388 :デフォルトの名無しさん:2012/08/16(木) 23:26:50.76
Pythonのネストスコープに欠陥がある!なんて言うから楽しみだったのに
自分の好みを連呼するだけの馬鹿だと分かってガッカリ

389 :デフォルトの名無しさん:2012/08/16(木) 23:29:09.85
のんろーかるってなんぞ?

390 :デフォルトの名無しさん:2012/08/16(木) 23:29:37.78
nonlocal使った具体的なソースがみたい

391 :デフォルトの名無しさん:2012/08/16(木) 23:30:33.43
さぁ、これでまたパイソニストの数が減ったかな。
ラムダは貧弱だし、スコープはおかしいし、
単純にラムダ多用が当たり前の今の風潮に向いて無い言語なんだよね。
ラムダはスコープが重要になってくるし、しかもそのラムダ自体が貧弱なのだから。

392 :デフォルトの名無しさん:2012/08/16(木) 23:31:54.33
はい勝利宣言はいりました

393 :デフォルトの名無しさん:2012/08/16(木) 23:35:12.23
こりゃラムダ

394 :デフォルトの名無しさん:2012/08/16(木) 23:37:44.86
これだけは断言できる

今日一日で関数型言語を嫌う人間は確実に増えた

395 :デフォルトの名無しさん:2012/08/16(木) 23:44:43.34
Pythonのリスト内包は見にくくて、Rubyの関数型の記述は見やすいの?

396 :デフォルトの名無しさん:2012/08/16(木) 23:51:58.10
仮にPythonのラムダが強化されて無名関数が作れるようになったとしても、
こんどは代入の有る無しでスコープが切り替わる変な仕様が牙をむいてくる。
ことラムダに関してはPythonは2重に詰んでいる。
逆にその辺を何故かうまくかいくぐったJSの先見の明には驚かされる。
シンプルで素直な言語仕様が生きたな。
Cにも通ずるものがある。

397 :デフォルトの名無しさん:2012/08/17(金) 00:07:03.34
>>390
クロージャでよくある例として、関数が呼び出された回数を数えるカウンタ
ここではデコレータで、カウントしたい関数をデコレートして実現してみた

Python2.x:参照が読めるだけだからリストを使う
http://ideone.com/aa0et

Python3.x:nonlocalで宣言した外側の変数に代入できる
http://ideone.com/8C3tB

398 :デフォルトの名無しさん:2012/08/17(金) 00:13:45.80
c = 0
def f():
  nonlocal c
  c += 1
  print(c)

f()

つかこれは動かないけどw
メソッドの内部にはない変数はまた別ってこと?

399 :デフォルトの名無しさん:2012/08/17(金) 00:15:21.58
それはnonlocalじゃなくてglobal。Python2.xから出来る

400 :デフォルトの名無しさん:2012/08/17(金) 00:19:40.50
http://www.python.jp/doc/release/tutorial/index.html
チュートリアルにデコレータないんだけどなんなの

401 :uy:2012/08/17(金) 00:21:22.59
うえ
ちょっと試したけどPythonきも
これはrubyで余裕で勝てる

402 :デフォルトの名無しさん:2012/08/17(金) 00:26:22.46
デコレータは使い方が色々あって重いし、なくても当面はなんとかなるからな
チュートリアルに載ってないことなんてナンボでもあるべ

403 :デフォルトの名無しさん:2012/08/17(金) 00:30:07.04
いちおー言っとくけど重いってのは学習のことね

404 :デフォルトの名無しさん:2012/08/17(金) 00:37:20.38
ちなみにPythonスレに2タブのコードを貼ると掘られます

405 :デフォルトの名無しさん:2012/08/17(金) 00:45:42.98
>>391
減るわけないじゃん。 >>385を論破してみろよ

406 :デフォルトの名無しさん:2012/08/17(金) 00:54:36.95
代入で宣言を兼ねるのは問題が全く無いワケではないが、彼はそれについて全く説明できていないんだよなあ。
面白いから答え書かずに眺めておこう。

407 :デフォルトの名無しさん:2012/08/17(金) 00:59:43.48
はいはい、頭良いフリはいいからROMってろよ

408 :デフォルトの名無しさん:2012/08/17(金) 01:11:43.19
>>405
代入で宣言を代用する方式は、ネストスコープを持つ最近の言語には殆ど採用されて無い、
というか、俺は見たことが無い。優れた方式ならもっと採用されているはずだろ。

409 :デフォルトの名無しさん:2012/08/17(金) 01:18:03.74
>>407
バカですが何か

410 :デフォルトの名無しさん:2012/08/17(金) 01:35:29.44
>>408
そのレスだけでは詭弁でしかない

411 :デフォルトの名無しさん:2012/08/17(金) 01:39:45.14
採用されてれば優れてるのか
Python自体はあちこちにそこそこ採用されてるからやっぱり優れた言語なんだな

412 :デフォルトの名無しさん:2012/08/17(金) 01:59:31.43
>>410
どこが詭弁なんだよ。
Pythonが出来た時代にはこんなにラムダが多用されるようになるとは
夢にも思わなかったんだろうよ。
だから、インナー関数は殆ど使われないし、ネストスコープもそんなに現れない、
そういう前提で、代入で宣言を代用したんだろう。
ところが、世の中ラムダだらけ、スコープだらけになってしまった。
時代を読むのは難しいが、ネスケ社が片手間に作ったJSがその辺上手に切り抜けているから
言い訳は出来ないわ。やはり言語仕様はシンプルで素直なのが一番。
当時の常識で変に捻ると後々邪魔になる。

413 :デフォルトの名無しさん:2012/08/17(金) 02:05:54.04
JSのどこがシンプルなんだよ。JSの本にもクセがあると書いてあるくらいなのに
まず、Pythonでも普通にラムダは使うし、他の言語より使わないとしたらそれはリスト内包表記が便利だからだよ

414 :デフォルトの名無しさん:2012/08/17(金) 02:08:22.62
JSの何をもってシンプルと言ってるのか分からない
自分が好き=シンプルなのか?

415 :デフォルトの名無しさん:2012/08/17(金) 02:10:14.31
>>413
Pythonのラムダって、あの式しか書けないやつですか?

416 :デフォルトの名無しさん:2012/08/17(金) 02:10:46.27
>>413
どっちかっつーと機能制限のせいだと思う、というか自分はそれがあるから内部関数のほうが多い
今は三項if式があるから昔よりマシになったけど、文が書けないってのは何気にキツいと思う

417 :uY ◆gXFLM6waxs :2012/08/17(金) 02:12:07.39
なんでこのスレ今日はこんなにヒートアップしてんの
ちょっと落ち着けば?
http://img.pics.livedoor.com/011/c/6/c6a670a71f0ef9867635.gif
http://img.pics.livedoor.com/012/8/8/880651e544c143b0cbce.jpg

418 :デフォルトの名無しさん:2012/08/17(金) 02:13:45.30
CoffeeScript はプログラミング言語のひとつである。コードはJavaScript のコードに変換される
Ruby や Python、Haskell から影響を受けたシンタックスシュガーの導入により、JavaScript に比べ簡潔さと可読性を向上させた

ワロタ

419 :デフォルトの名無しさん:2012/08/17(金) 02:16:05.29
ラムダを多用ってどこの誰が多用してんの?

420 :デフォルトの名無しさん:2012/08/17(金) 02:19:28.36
最近の言語と言ってるが、最近の言語で言語仕様がシンプルなんてなくね?
JSがシンプルというのも甚だ疑問だけど、他の最近の言語だって全然シンプルじゃないだろ

421 :デフォルトの名無しさん:2012/08/17(金) 02:20:53.14
>>419
関数型では多用するけど、手続き型では代替手段を使うことのほうが多いよね
PerlやRubyはブロックだし、Pythonはforイテレータやリスト内包、ジェネレータ式や内部関数
強いて言えば無名関数リテラルでやるJSくらいじゃないか?当て嵌まるのって

422 :デフォルトの名無しさん:2012/08/17(金) 02:25:00.28
俺は式の途中で関数オブジェクトが入るべき場所に
巨大なラムダをねじ込む方が明らかに醜いと思うけど

423 :デフォルトの名無しさん:2012/08/17(金) 02:27:11.15
>>421
え、このスレでは、Rubyのブロックをラムダって言ったら怒られるわけ?

424 :デフォルトの名無しさん:2012/08/17(金) 02:29:13.98
式で表現できるくらいならまだしも、ある程度まとまった機能を分けるのは当然のことだと思うけど
関数定義してはいけないという宗教の人は酷いコードを書いてそうだな

425 :uY ◆gXFLM6waxs :2012/08/17(金) 02:33:33.57
俺様から言わせてもらうとラムダとオブジェクト指向は相性悪いと思うよ
ある程度まで大きな処理になるならラムダじゃなくてクラスにするべきなんだよ
そこら辺のさじ加減を間違えるとゴミ

426 :デフォルトの名無しさん:2012/08/17(金) 02:35:21.78
>>424
嫌だよ。俺の感覚だと、ラムダはfor文やif文に続くブロックと同じ扱いだから。
あそこを名前つけて関数化したいやつはおるまい。

427 :デフォルトの名無しさん:2012/08/17(金) 02:40:31.77
それはお前の感覚が完璧に間違ってるだけ

428 :デフォルトの名無しさん:2012/08/17(金) 02:45:41.20
>>423
Rubyのブロックはそれ自体ではまだ値ではないからな
オマケにラムダは別で存在するし

429 :uY ◆gXFLM6waxs :2012/08/17(金) 02:57:30.07
むしろrubyのブロックは標準では(ラムダ)lambdaじゃなくてprocだよ
lambdaを渡す事も出来るってだけで別物

430 :デフォルトの名無しさん:2012/08/17(金) 03:02:03.44
>>429
いや{|v| }の段階ではまだprocですらないだろ
ただのメソッド呼び出しの一部でしかない

431 :デフォルトの名無しさん:2012/08/17(金) 08:56:29.28
Ruby(笑)
スレタイ見えない馬鹿がいる

432 :デフォルトの名無しさん:2012/08/17(金) 09:09:32.70
良くも悪くもRubyはこのスレの主役

433 :デフォルトの名無しさん:2012/08/17(金) 09:33:25.47
スレタイにRubyが入っていないのは永久欠番だから?

434 :uY ◆gXFLM6waxs :2012/08/17(金) 10:08:49.41
勝ち抜け

435 :デフォルトの名無しさん:2012/08/17(金) 10:51:41.54
>>433
どこぞのクソコテのせい。

436 :uY ◆gXFLM6waxs :2012/08/17(金) 11:22:36.94
使えば使うほど他言語との差を感じる
rubyをはじめ動的言語は型情報がない分、ソースを書くのが楽だから
静的言語だと作業時間や労力的に見て
絶対にかけないようなシステムが構築できると思う
人間は例外なくプログラミング言語を完璧には使いこなせないので
「理論的に出来る」じゃ、出来ないんだ
動的言語がオモチャだなんてとんでもない
型エラーで悩まされることのない動的言語はやばいぞ

437 :デフォルトの名無しさん:2012/08/17(金) 22:35:04.98
ねぇーよ。動的言語なんてIDE直結の開発できねえから大規模な開発なんて不可能に決まってんだろ。
コーディングの量が多くても潜在バグを探知できるから静的型付けは生産性が高いんだ。

JavaScriptでバグがでようがでまいがどうでもいい箇所しか使い道なんて無いんだよ動的型付けは。
RubyやPythonでサーバーサイドなんえ実用性とか全くない。

438 :デフォルトの名無しさん:2012/08/17(金) 22:39:12.61
IDEだと静的言語でも今時のテンプレートバリバリのソースとか
うまく扱えないだろ?
あの手の環境って時代遅れかもよ?

439 :uY ◆gXFLM6waxs :2012/08/17(金) 23:12:05.26
やってる奴もいるのに不可能とか言われてもね
動的言語で大規模開発できる奴らはスキル低くないんだってば

440 :uY ◆gXFLM6waxs :2012/08/17(金) 23:25:37.50
動的言語と静的言語を比べる時に
なんか静的言語ならバグが混入しないみたいな事言ってる奴いるけど
凄い勘違いだと思う
実際はただ混入しやすいバグの種類が違うだけ

441 :デフォルトの名無しさん:2012/08/18(土) 00:41:53.89
韓国最大手の釜山貯蓄銀行が破産。自己資本比率は驚異の-50.29%
http://engawa.2ch.net/test/read.cgi/poverty/1345217353/


釜山(プサン)地方裁判所は16日、債務超過に陥った釜山貯蓄銀行に対し、破産を宣告しました。

釜山貯蓄銀行は去年2月17日に営業停止処分を受けたのに続き、去年4月29日には、BIS=国際決済銀行による
自己資本比率がマイナス50.29%と、健全性を示す基準の1%を大幅に下回っていたため、
不健全金融機関に指定されました。

当時、釜山貯蓄銀行の資産総額は1兆3000億ウォン、借金は3兆5000億ウォンで、
資本金の増額や第三者による買収など経営改善の可能性も低いことから、
管財人が清算に向けて破産を申請していました。
5000万ウォン以下の預金資産や優良資産などはすでにブリッジバンクのイェソル貯蓄銀行に引き継がれており、
破産宣告により、釜山貯蓄銀行に5000万ウォンを超える預金を預けている
預金者と後順位の債権者は、破産手続きによる配当を受けることになりますが、
残った資産を処分しても、配当として受け取る資金はほとんどないものとみられます。
ただ、5000万ウォン未満の預金者は、今後もイェソル貯蓄銀行の管理のもとで、金融取り引きを続けることができます。
これに先立ち、今月14日には第一(チェイル)、第一2、プライム相互貯蓄銀行が
ソウル中央地方裁判所に破産申請を行っており、
トマト貯蓄銀行とパランセ貯蓄銀行もすでに先月、裁判所に破産を申請しています。
http://world.kbs.co.kr/japanese/news/news_Dm_detail.htm?No=44906


442 :デフォルトの名無しさん:2012/08/18(土) 00:46:48.57


443 :デフォルトの名無しさん:2012/08/18(土) 01:02:28.22
>>419
LLがどうとかおいておくとC#とか?あとPowerShellもか

444 :デフォルトの名無しさん:2012/08/18(土) 01:37:03.91
>>443
お前それマジなの?

445 :デフォルトの名無しさん:2012/08/18(土) 01:43:56.23
PyPyのSTM早く来てぇ

446 :デフォルトの名無しさん:2012/08/18(土) 02:02:51.80
>>444
2ch総力を上げてもいいのよ?

447 :デフォルトの名無しさん:2012/08/18(土) 02:24:21.07
 韓国経済が急激に失速している。一番の原因は、これまで韓国経済を引っ張ってきた原動力である輸出に陰りが見え始めたためだ。

 輸出に次いで内需の鈍化も懸念されている。住宅価格の下落とそれに伴う消費や投資の抑制がみられ、バブル崩壊以降日本が苦しんだ
「日本型長期デフレ」の兆候が現れている、との指摘も少なくない。

■好調に見えたのはヒュンダイやサムスンだけ

 韓国の輸出は、2012年7月の通関ベースで前年同月に比べて8.8%減と大きく減った。マイナス幅は3年ぶりの高い数値だという。

 これまで韓国の輸出をけん引してきた自動車の輸出が頭打ちになったのをはじめ、船舶や石油化学製品、携帯電話など主力製品の輸出が急速に落ち込んだ。

 韓国の輸出額は国内総生産(GDP)対比で50%を超える。「輸出国」といわれる日本でもGDP対比では10%半ばだから、輸出依存度の高さは圧倒的だ。
そのため、輸出の不振は即韓国経済の失速に直結する。

 なかでも韓国経済を支えてきたのが欧州連合(EU)向けの輸出。EUとは自由貿易協定(FTA)を結んでいる。そのEU向けが12年1〜6月期には前年同期に
比べて16.0%も減った。EU諸国の債務危機から発した景気低迷が影響した。

 さらには中国向けも1.2%減った。第一生命経済研究所経済調査部の主任エコノミスト、西?徹氏は、「中国向け輸出の減少はボディブローのように効いています」と話す
。韓国の素材や部品メーカーは中国を介して、間接的にEU向け輸出を増やしてきたからだ。

http://headlines.yahoo.co.jp/hl?a=20120817-00000006-jct-bus_all


448 :デフォルトの名無しさん:2012/08/18(土) 04:18:00.22
まー、Twitter社がRuby捨てたっていう事実関係は大きいよな。

449 :デフォルトの名無しさん:2012/08/18(土) 04:30:22.45
え、なにが
ツイッター潰せばいいだけでしょ

450 :デフォルトの名無しさん:2012/08/18(土) 09:45:36.90
>>443
テキトー抜かすな

451 :デフォルトの名無しさん:2012/08/18(土) 11:28:02.65
TwitterはRuby捨ててJavaに移りましたよ。
動的型付け言語に人生をかけてるuvさんもきっとどこかに捨てられたんでしょうね。

452 :デフォルトの名無しさん:2012/08/18(土) 11:35:57.91
関数の引数不正、演算の型不一致は静的ならエラーを吐いてくれる。
型宣言がソースが長くなるだけの無用なものとか言ってるやつらは開発なんてしたことがないエセプログラマー。
オブジェクト指向言語でわざわざpublicとかの修飾子つけるのが無駄だとしか思ってないんだろうな

453 :デフォルトの名無しさん:2012/08/18(土) 12:02:57.81
そらRubyは捨てられるでしょ。
可読性ゼロの変態文法だし、アプデするごとに互換性なくなるんだもんw

454 :デフォルトの名無しさん:2012/08/18(土) 12:06:16.28
静的言語ってウンkばっかなんだよな
Goには頑張って欲しい

455 :デフォルトの名無しさん:2012/08/18(土) 12:22:28.86
Xtend使えばJavaの冗長さも大半解消されるわけで

456 :デフォルトの名無しさん:2012/08/18(土) 12:28:14.05
>>452
型チェックがないと簡単にバグってしまうような技術レベルなら
それこそエセですよ


457 :デフォルトの名無しさん:2012/08/18(土) 12:45:51.68
多分452と456とでは想定してるコードの規模が全く噛み合ってない


458 :デフォルトの名無しさん:2012/08/18(土) 13:15:12.79
>>453
言語仕様が変だというのが捨てる理由なら、真っ先にPHPのシェアが0に
なってなければ変なんだけどwwwwwwww

459 :デフォルトの名無しさん:2012/08/18(土) 14:03:14.72
>>448
捨ててないよ
Rubyのエンジニアが多いからこれからも使っていくみたいだよ

460 :uy:2012/08/18(土) 14:14:03.81
なんていうかわかったんだけどさ

言語の互換性ってそれほど大きな問題でもない気がする
仕様変わっても1日あればバグ全部とれるわ

それにrubyは順調にひろまってるwww
評判がわるいガラパゴスは2chだけwwww

461 :デフォルトの名無しさん:2012/08/18(土) 15:05:28.42
Rubyって韓流と同じ臭いがする
流行ってる、流行ってるっていうけどRuby使ってるヤツなんか見たこと無い

462 :デフォルトの名無しさん:2012/08/18(土) 15:07:25.28
rubyでめし食っててスマン


463 :デフォルトの名無しさん:2012/08/18(土) 15:11:58.61
参考資料に https://github.com/languages

JavaScript 20%
Ruby       14%
Python      9%
Shell       8%
Java        8%
PHP         7%
C           6%
C++         4%
Perl        4%
Objective-C 3%

JavaScript相変わらずつよす

464 :デフォルトの名無しさん:2012/08/18(土) 15:26:32.95
>>463
それってプロジェクト数で出してるのかなぁ。そしたら使い捨てほど上に来やすいと納得。

465 :デフォルトの名無しさん:2012/08/18(土) 15:27:47.86
どーいう集計のしかただよw。
Rubyが高いとか捏造ランキング乙w

>>462
え?なに?ウンコでも食ってんのRuby使いは?

466 :uy:2012/08/18(土) 15:38:52.03
だってgithubってこういう認識だもの・・・
http://d.hatena.ne.jp/keyword/GitHub

Rails や RSpec 等、また http://gems.github.com/
Rubygems のレポジトリソース等、Ruby 関係のライブラリの
コードを中心とした様々なオープンソースの開発の場所ともなっている。

それに 「参考資料に https://github.com/languages 」というのは実は
http://www.infoq.com/jp/news/2011/04/github-2m
> 言語に関する統計ページがあるが、これは
> プロジェクト数ではなくコード行数をカウントしている。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


467 :デフォルトの名無しさん:2012/08/18(土) 15:48:55.18
え?
コード行数でカウントしててruby2位って相当じゃねーの

468 :デフォルトの名無しさん:2012/08/18(土) 15:53:27.80
Rubyのスパゲッティっぷりを証明してるサイトってことか。

469 :uY:2012/08/18(土) 15:53:45.61
念のため

http://d.hatena.ne.jp/keyword/GitHub
>git のプロジェクトホスティングサービス。Rails で作成されており、使いやすいインターフェイスが特徴。
                         ~~~~~~~ 

 R a i l s 
 ~~~~~~~~~~~




470 :デフォルトの名無しさん:2012/08/18(土) 15:57:38.08
じゃあZopeで作成されたプロジェクトホスティングサービスの統計を
調べればいいんじゃね?




ところで、どこにあるん?

471 :デフォルトの名無しさん:2012/08/18(土) 16:02:57.25
おいやめろ

>>467
行数でカウントしたいならこっちか
http://www.ohloh.net/languages?query=&sort=code

472 :デフォルトの名無しさん:2012/08/18(土) 16:19:16.14
     ___
   /|    |
   ||. |∧_∧|
   ||. (´・ω・| うわっ、クソスレに来てしまった。
   ||oと.  U|
   || |(__)J|
   ||/ ̄ ̄
     ___
    |     |
    |     |
    |   o|
    |     |
    |     |
    彡 ̄ ̄ パタン、


473 :uy:2012/08/18(土) 16:29:17.41
行数でカウントなんてプロっぽくないな。

ステップ数でカウントと言おう
Rubyはステップ数が多い。

474 :デフォルトの名無しさん:2012/08/18(土) 17:08:37.68
RubyやPythonなんて使ってる時点でプロじゃねぇだろw

475 :デフォルトの名無しさん:2012/08/18(土) 17:22:25.77
そもそもプロってなんだよ、みんなプロぐらまーだよってか?

476 :デフォルトの名無しさん:2012/08/18(土) 17:35:21.01
プロならスクリプティング言語じゃなくてプログラミング言語と言いたいわけですね。

477 :デフォルトの名無しさん:2012/08/18(土) 17:36:33.02
かぶってたはずかしい

478 :デフォルトの名無しさん:2012/08/18(土) 17:57:03.32
いやいや、君のオヤジギャグの方がクールだよぉ〜
オレのは余計サブくなったけど・・・

479 :デフォルトの名無しさん:2012/08/18(土) 18:11:35.41
i=""
if(i)
puts "true"
else
puts "false"
end;
なんでtrueになるの?

480 :uY ◆gXFLM6waxs :2012/08/18(土) 18:43:59.73
空っぽになっても自分を曲げたくないからだよ

481 :デフォルトの名無しさん:2012/08/18(土) 20:03:14.87
サブッ・・

482 :uY:2012/08/18(土) 22:10:47.15
ha?


483 :デフォルトの名無しさん:2012/08/18(土) 23:23:57.45
Lisp由来の、非nilはすべて真ルールは
なかなかうまく機能する

484 :デフォルトの名無しさん:2012/08/19(日) 01:06:57.21
blank? が欲しい時はあるけどね

485 :デフォルトの名無しさん:2012/08/19(日) 01:28:14.60
blank?ってどういう意味?

486 :uy:2012/08/19(日) 01:36:50.63
(頭が)空っぽ?って意味だよw

487 :デフォルトの名無しさん:2012/08/19(日) 03:42:32.99
白板

488 :デフォルトの名無しさん:2012/08/19(日) 04:18:39.97
>>479
文字のインスタンスがあるから

489 :デフォルトの名無しさん:2012/08/19(日) 04:21:03.00
ruby流行ってるていうのはステマ
まわりでruby使ってるやつみたことない

490 :デフォルトの名無しさん:2012/08/19(日) 04:39:40.97
>>484
もし空文字列(長さがゼロの文字列)かどうか調べるならString#empty?があるよ

491 :デフォルトの名無しさん:2012/08/19(日) 05:37:53.95
使ってる人の声が大きいんだろう

492 :uY ◆gXFLM6waxs :2012/08/19(日) 06:10:13.39
>>489
かわいそう

493 :デフォルトの名無しさん:2012/08/19(日) 07:03:19.28
rubyさいきょう

494 :デフォルトの名無しさん:2012/08/19(日) 12:32:05.50
ruby使ってる人ムトゥ神以外に見たことない

495 :デフォルトの名無しさん:2012/08/19(日) 14:52:41.00
ruby全然流行ってるない
みんな煽ってるだけ
ステマ

496 :uY:2012/08/19(日) 15:58:54.74
>>495
スクレイピングやったことある?
ツイッターBOT作ったことある?
makefile不便だと思った事ない?
2chねるに書き込みとかしたくなったことない?

それらはすべてrubyで簡単に解決できます

497 :デフォルトの名無しさん:2012/08/19(日) 16:07:26.66
どれもないな
てかその用途自体、Rubyが言語というよりツールの趣が強いって証だ

498 :uY:2012/08/19(日) 16:09:45.70
つまりrubyはツールが強い言語ってことは認めたのかな?

499 :デフォルトの名無しさん:2012/08/19(日) 16:13:18.07
日本語でおk

500 :デフォルトの名無しさん:2012/08/19(日) 16:34:32.49
そんなのどんな言語でもできるだろ。
できない言語探す方が難しいわw

501 :デフォルトの名無しさん:2012/08/19(日) 16:44:04.10
新事実! ruby は 2chねるに書き込むために創られた!


502 :デフォルトの名無しさん:2012/08/19(日) 18:24:03.91
>>498
特定用途に強いことはわかった
レールから外れるとなにもできないのはわかった


503 :デフォルトの名無しさん:2012/08/19(日) 18:37:22.20
ようやくこのスレにふさわしい平壌運転が再開されたみたいですなw

504 :デフォルトの名無しさん:2012/08/19(日) 18:47:09.29
これからプログラミングはじめてみたいんですけどなにがいいでしょうか
あ、rubyでよさそうですね
rubyやることにします

505 :uY:2012/08/19(日) 18:48:13.63
>>504
あ、おめでとうございます
それ正解です
rubyをやりましょう

506 :uy:2012/08/19(日) 19:27:48.09
というかやれ、

507 :デフォルトの名無しさん:2012/08/19(日) 20:33:10.18
ひどい自演だ

508 :uy:2012/08/19(日) 20:48:32.33
ぷw 自演じゃねーよ
他演だよ。

他演ってのはな、自演に見えるように
他の人がわざと意図的に
都合のいいレスをすることだ。

509 :デフォルトの名無しさん:2012/08/20(月) 02:15:02.71
自演乙

510 :デフォルトの名無しさん:2012/08/20(月) 02:21:37.40
馬鹿には無理

511 :デフォルトの名無しさん:2012/08/20(月) 02:50:59.03
自演には無理

512 :uY:2012/08/20(月) 05:46:11.83
さっきちょっと書いたコードなんだけど
何も考えずに適当に書くとこうなるコードでも

n = i = 0
s = []
b = ["a","b"]
[1,2,3].cycle do | m |
  n += 1
  i += 1
  break if n == 21
  s << m
  if i == 4
    i = 0
    s << b.first
    b.rotate!
  end
end
p s

↓ちゃんと書けばちゃんとブロック内に全部収まるところが、rubyが最強である所以だと思う

[1,2,3].cycle.take(20).each_with_index.each_with_object [ s = [] , ["a","b"] ]  do | ( m , i ) , ( s , b ) |  
  s << m
  ( (i += 1) % 4 ).zero? and s << b.rotate![-1]
end
p s

メソッド名が長かったりしてソースは長いけどアルゴリズムとしては完璧なものが書けるんだよ

513 :uy:2012/08/20(月) 07:39:28.20
ごめんそのソースコード忘れてミスってる
徹夜明けはだめだ消えますさよなら

514 :デフォルトの名無しさん:2012/08/20(月) 09:50:11.23
ふ〜ん(笑)

515 :デフォルトの名無しさん:2012/08/20(月) 09:57:44.62
自演確定

516 :デフォルトの名無しさん:2012/08/20(月) 14:33:03.13
>>512
仕様がどう与えらてんのかによるけど、何も考えずに書くなら普通こうだろ?

a = [1,2,3].cycle
b = ["a","b"].cycle
p (1..25).map{ |i| (i%5)!=0 ? a.next : b.next }

517 :uy:2012/08/20(月) 14:50:30.46
おまえの普通とか知らんし

518 :デフォルトの名無しさん:2012/08/20(月) 16:05:06.61
rubyの何がどう優れているのかはさっぱりわからんが、
uyが無駄に長いコードを書いて悦に入っているってことはわかった

519 :uY:2012/08/20(月) 16:31:55.85
40.times.map.each.with_index(1).each_with_object( [ [1,2,3] , ["a","b"] ].map(&:cycle) ).map  do | ( m , i ) , ( a , b ) | 
  Hash[ true , b.next , false , a.next ][ ( i % 5 ).zero? ]
end.display

puts

[1,2,3].cycle.take(40).each.with_index(1).each_with_object( ["a","b"].cycle ).map  do | ( m , i ) , b | 
  ( i % 5 ).zero? ? b.next : m
end.display


変数の完全隠蔽がされている

アルゴリズムとして完璧なんだよこれは


これを無駄に長いとはいわない
短くしようと思えば出来る長さなんだよ
すべてがメソッドで、その引数で構成されているから

↓これが出来る

a = [1,2,3].cycle.take(40).each.with_index(1).each_with_object( ["a","b"].cycle )

a.map do | ( m , i ) , b | 
  ( i % 5 ).zero? ? b.next : m
end.display


520 :デフォルトの名無しさん:2012/08/20(月) 17:05:56.67
from itertools import cycle

print([s if i % 5 == 0 else n for n,s,i
    in zip(cycle([1,2,3]), cycle("ab"), range(1,41))])

521 :デフォルトの名無しさん:2012/08/20(月) 17:06:07.16
>>519
あのぉ、516の細かいところををしれっとパクってるうえに
仕様がかわっちゃっている(バグってる)んですけど?
相変わらず読みにくいし汚いし。
完璧なアルゴリズムが聞いてあきれるわ。

522 :uY:2012/08/20(月) 17:36:57.99
>>521
俺様の使うコードでは配列じゃない都合が悪いから配列で書いている
このスレ的にはcycle.nextの方が良いと思ったから書き直しただけ

これが読めないなら慣れろとしかいえない

バグってるって何が?意味が分からない頭大丈夫?take20がtake40になっただけだよ?生きてる?

>>520
> from itertools import cycle
えっ
Pythonってこんな宣言書かないとcycle使えないの?

523 :uY:2012/08/20(月) 17:38:29.70
http://ideone.com/jibJu
はぁ???

524 :デフォルトの名無しさん:2012/08/20(月) 17:41:46.41
import含めてもRuby(っていうかuyのクソコード)のほうが冗長やんけ

525 :デフォルトの名無しさん:2012/08/20(月) 17:42:36.09
>>522
> バグってるって何が?意味が分からない頭大丈夫?take20がtake40になっただけだよ?生きてる?

>>512の出力
[1, 2, 3, 1, "a", 2, 3, 1, 2, "b", 3, 1, 2, 3, "a", 1, 2, 3, 1, "b", 2, 3, 1, 2, "a"]

>>519の出力
[1, 2, 3, 1, "a", 3, 1, 2, 3, "b", 2, 3, 1, 2, "a", 1, 2, 3, 1, "b", 3, 1, 2, 3, "a", 2, 3, 1, 2, "b", 1, 2, 3, 1, "a", 3, 1, 2, 3, "b"]

526 :uY:2012/08/20(月) 17:48:06.99
>>525
ばーか、細かいこと気にしてるから
お前はハゲなんだ。ハーゲw

527 :uY ◆gXFLM6waxs :2012/08/20(月) 17:48:45.11
>>526

528 :デフォルトの名無しさん:2012/08/20(月) 17:54:20.01
うっほw これは恥ずかしいww

529 :デフォルトの名無しさん:2012/08/20(月) 18:04:01.80
どっちが正解なんだよぉー。おーしえろぉよーw

530 :デフォルトの名無しさん:2012/08/20(月) 18:07:39.27
算数ドリルの宿題ですか

531 :uY ◆gXFLM6waxs :2012/08/20(月) 18:09:43.34
ひとつの規則にしたがって、一行にかけますねってことだよ
Pythonは>>520
2つくらいの規則がはいってる

>>529
別にどっちでも正解、どういう仕様にするかってだけ
これは俺様Libの中の数列生成ライブラリ
俺様Libでこの数列は
func(5,["a","b"],[1,2,3])
によってEnumratorを返すから
p func(5,["a","b"],[1,2,3]).take(20)
で表現できる
いま思ったけど>>512>>519は両方の仕様を入れてもいいかもしれないね、そうだね、そうしよう

532 :デフォルトの名無しさん:2012/08/20(月) 18:12:00.71
Pythonがfunctoolsやitertoolsを別にしてる理由がなんとなくわかった

533 :デフォルトの名無しさん:2012/08/20(月) 18:33:14.29
馬鹿除けfoolproof

534 :デフォルトの名無しさん:2012/08/20(月) 19:46:46.99
国際規格になってるのがRubyで国際規格になってないのがPythonなんだよ

535 :デフォルトの名無しさん:2012/08/20(月) 19:48:26.66
ただし処理系は国際規格に準拠していません

536 :デフォルトの名無しさん:2012/08/20(月) 19:51:45.79
何でこんなにruby使いたがらないのかが分からない
日本で生まれた言語だよ?
なるべく多くの用途にrubyを使っていく事で今後世界のITにおいて日本が優位に立てる要因のひとつになる
明日の飯の種しか見れない人たちなんですか?

537 :デフォルトの名無しさん:2012/08/20(月) 19:56:06.47
俺は日本産推しはやめて欲しい
いい言語だからruby使うというだけのこと


538 :デフォルトの名無しさん:2012/08/20(月) 20:00:25.63
rubyが合ってる用途にrubyを使うのはいいが
すべての用途にrubyをなんて流れが日本で主流になったら、
間違いなく日本のIT業界は滅びるな

539 :デフォルトの名無しさん:2012/08/20(月) 20:06:23.73
日本のソフトウェア技術ではRubyが最後の砦といっても過言じゃない
ほかはどうにもならないくらいに差をつけられた
お前らが何を考えているか分からない

540 :デフォルトの名無しさん:2012/08/20(月) 20:13:26.70
日本産とか言うならGauche使えよ。関数型だしオマエ大好物だろ?
rubyなんかよりGauche使うべき。

541 :デフォルトの名無しさん:2012/08/20(月) 20:21:22.34
gemがイマイチ。

542 :デフォルトの名無しさん:2012/08/20(月) 21:06:32.62
Ruby輸出して国益になってるか?
ぼったくられてるだけだろ

543 :デフォルトの名無しさん:2012/08/20(月) 21:18:36.87
rubyはまず処理系のバグが多すぎる。やわい。ちょっと何かさせるとすぐSEGVる。
次に遅すぎる。下手打つと簡単に帰ってこなくなる。そのたびにC書いたりチューンしないといけない。
そして一度書いたコードが処理系ver upですぐ動かなくなる。ころころ変わり過ぎ。
どんなに開発効率が上がったとしても、こんなネガティブだらけじゃ怖くて使えない。

544 :デフォルトの名無しさん:2012/08/20(月) 21:52:28.92
ooの教育用言語でいいじゃん。

545 :デフォルトの名無しさん:2012/08/21(火) 00:17:33.08
rubyでは開発効率が上がることすらないと思うなあ
というか二人以上で使う言語じゃない気がする
まあ、一人で使うとしてもPythonの方が、自分のコードを見返した時に分かりやすいと思うけど

546 :uY:2012/08/21(火) 01:05:59.17
もうrubyなんて使わなくていいよ
この言語はダメだ
やっぱ不安定
いやでも大勢が使えばバグどんどん見つかって便利になっていくんだろ
やっぱみんなで使えばいいじゃん クズゴミなのは分かってる でもつかっていけばいいじゃん
今日俺は2時間も犠牲にしてバグの特定
2時間だよ2時間、それだけの時間あれば俺はきっと萌え絵を一枚描きあげてる
なんで世界で数十万単位の人間が使ってるはずなのに俺程度で見つけられるバグが
こんないくつも残ってんの?おかしい
もうやんない
再現したり再現しなかったりふざけてるし、俺がソースかいてたら絶対こんなバグは入らない
はいでも直して欲しいから報告しましたよ2時間もかけて再現性の低いものをさああああ
バグってなんで入るの?
プログラムにバグとか入れた事ないから全然よくわかんない

547 :デフォルトの名無しさん:2012/08/21(火) 01:09:34.71
rubyってワンライナーで最強とか言って喜ぶくらいしか使い道無いでしょ
perlと同じ道をたどるんだよ

548 :uY:2012/08/21(火) 01:33:38.87
perlがほろんだのはrubyのせい
rubyの上位互換が今後出てくるなら素直に乗り換える

549 :デフォルトの名無しさん:2012/08/21(火) 01:47:09.40
OpenSSLのビルドにはPerlが必須でございます。
Rubyユーザーはnet/httpsを使うためにPerlをインストールするのですよw

550 :デフォルトの名無しさん:2012/08/21(火) 01:52:00.92
>>547
いまいちワンライナー書きづらい。

551 :uy:2012/08/21(火) 01:59:21.64
Perlは嫌いじゃない
perlやrubyって結局毎日プログラミングして無いと意味無いんだろうな
たまにしかコードかかないなら
1文字2文字の違いなんてどうでもいいんだろどうせ

552 :デフォルトの名無しさん:2012/08/21(火) 03:12:32.84
PHPの勉強するためにmacに対応してるっていう
ノン・プログラマのためのPHP入門10日間コースって本を買ったんだけどさ
windows中心で書かれてて凄く使いずらい
金返せよ失敗した誰か助けて

553 :デフォルトの名無しさん:2012/08/21(火) 03:24:02.04
rubyは不満の掃きだめだね
末期症状が現れ始めてる気が
railsバブルが完全に終わってしまったからかな?
rubyからはなんの新しいものも出てこない。

554 :デフォルトの名無しさん:2012/08/21(火) 03:25:03.23
今思えばDHHは夢を見せた分だけ罪が重いね

555 :uY:2012/08/21(火) 04:10:46.94
どんだけ叩いても無駄無駄
rubyは使われ続ける

556 :uy:2012/08/21(火) 04:24:45.16
rubyは2.0で1.9との完全互換とるんでしょ?
仕様変更がなくなったとわかればここから一気に広まるよ
rubyを使ってない奴の多くは仕様変更を怖がっているだけ
2013年はrubyの年になる

557 :uY ◆gXFLM6waxs :2012/08/21(火) 05:14:48.89
お前らはWindowシステム何分で作れますか?
俺はいまからあと46分で作る 

558 :uY ◆gXFLM6waxs :2012/08/21(火) 06:01:05.58
マウス移動クローズ、重ね合わせ順序までは作れた
お前ら雑魚 俺が天才

559 :デフォルトの名無しさん:2012/08/21(火) 08:52:27.66
rails案件はのきなみ大炎上だしね。
ようやくみんなrubyのたちの悪さが分かってきた感じ。
あと心配なのは、rubyの悪評がossや動的言語一般を巻き込んでしまうことだから、
rubyにはできるだけひっそりと死んでいって欲しい。

560 :uY ◆gXFLM6waxs :2012/08/21(火) 09:01:49.47
これからもrubyは広まっていくだろうね

561 :デフォルトの名無しさん:2012/08/21(火) 09:09:41.89
もうrubyなんて使わなくていいよ
この言語はダメだ
やっぱ不安定

562 :デフォルトの名無しさん:2012/08/21(火) 09:46:34.89
>>536
信者キモい
様々な意味で使い物にならない

563 :uY ◆gXFLM6waxs :2012/08/21(火) 09:57:40.87

俺、昔のruby界隈のログを漁った事があるけど
結局rubyたたいてる奴は元ruby使いであると結論付いた
rubyコミッター側も気持ち悪いけど、アンチ側もすっげー気持ち悪かった
rubyの効率は理解してるけどrubyが嫌いで嫌いでしょうがなくなっちゃった奴らだ

あまりに空虚で、無意味なことにこだわっている
どんだけ2ch内で言語の評判を下げようと上げようと意味はないよ
俺がrubyを触ってから2ch内でのruby評判は落ちたかもしれない
それでもそんなこととは無関係に国際規格になってるし、
Googleでのruby情報の検索ヒット数はどんどん増えている
2年前はPerlより検索ヒット数少なかったからね、普通に伸び続けてるよruby
なんか終わった終わった言ってる奴が多いのはこの板だけ

こんな板を見てるのなんて毎日ほとんど同じ奴なんだよ
毎日この板を見ている奴なんて、日本の中で数百人程度しかいない、
1日板全体で500レスあるか? ないだろう

1人が5レスずつ書き込むとしたら、1日に100人しかこの板を見てない

無意味である

確かにrubyはバグだらけ、俺は他LLをrubyほど使い込んではいないから、他LLのバグ事情は知らない
LLは所詮こんなものなのかもしれないが、そういういいわけを許したくない


564 :デフォルトの名無しさん:2012/08/21(火) 16:21:10.86
>>559
キチガイ乙w

565 :デフォルトの名無しさん:2012/08/21(火) 17:28:10.60
Pythonは使わないのだけど
>>520 はうまいね Rubyだと
p (1..40).zip([1,2,3].cycle,%w[a b].cycle).map{|i,n,s| i%5==0 ? s : n}
かな

最初の仕様だと >>516 と同じようにして
from itertools import cycle
n=cycle([1,2,3])
s=cycle("ab")
print([s.next() if i%5 == 0 else n.next() for i in range(1,25)])
かな
無理やり一時変数をなくすと
from itertools import cycle
print((lambda n,s:[s.next() if i%5 == 0 else n.next() for i in range(1,41)])(cycle([1,2,3]),cycle("ab")))
だろうか? ふつうのPython使いは内部関数を作るのかもしれないけれど

Rubyで >>516から一時変数をなくすなら
p (1..25).map.with_object([1,2,3].cycle,%w[a b].cycle){|i,(n,s)| i%5==0 ? n.next : s.next}
とかかな


566 :デフォルトの名無しさん:2012/08/21(火) 17:33:54.93
LinuxだとPerlからPythonに移行しようって動きがあるけど、OSミニマムインストールした後、ちょっと何かのミドルウェアインストールすると依存関係ですぐPerlが要求されるよね。
ワンライナーも考えれば、PythonじゃPerlの代わりにはなかなかならない。
もちろんRubyは論外。
Perlなら外部モジュール使ってなければ、10年前に書かれたプログラムでも最新のバージョンで余裕で動くし。


567 :デフォルトの名無しさん:2012/08/21(火) 17:46:45.39
ワンライナーなんか上手いも下手も無い。
こんなの"ab"が”abc”になっただけですぐ破綻する。

568 :デフォルトの名無しさん:2012/08/21(火) 17:50:41.93
rails案件はのきなみ大炎上だ氏ね

569 :デフォルトの名無しさん:2012/08/21(火) 18:01:58.01
最初の仕様は
最初の数列から4つづつと、次の数列から1つづつ交互に取り出すってことだろうから
Ruby 2.0では
p [1,2,3].cycle.each_slice(4).lazy.zip(%w[a b].cycle).flat_map(&:flatten).take(25).force
ってかけるんだけど
たいして短くはならないな

2.0ではEnumertor::Lazyが導入されるので
Pythonのジェネレーター式やitertoolsみたいに無限列を取り扱えてうれしい


570 :デフォルトの名無しさん:2012/08/21(火) 18:10:58.22
>>565
print((lambda n,s:[s.next() if i%5 == 0 else n.next() for i in range(1,41)])(cycle([1,2,3]),cycle("ab")))
はステキだわぁ〜、これなら破綻しないわぁ〜

571 :デフォルトの名無しさん:2012/08/21(火) 18:39:05.58
p [*[[1,2,3].cycle]*4,%w[a b].cycle].cycle.take(25).map(&:next)

572 :デフォルトの名無しさん:2012/08/21(火) 19:04:43.95
>>567
ワンライナーは基本使い捨て。

573 :デフォルトの名無しさん:2012/08/21(火) 19:19:26.56
[x.next() for x in islice(cycle([cycle([1,2,3])]*4+[cycle("ab")]),25)]

574 :デフォルトの名無しさん:2012/08/21(火) 19:30:10.57
VB確かに書きやすいけど、javascript書けた方がチャラい感あるしモテるんじゃないかと思ってる。

575 :uY:2012/08/21(火) 19:39:58.13
なんかあまりに再実装する奴が多すぎてかわいそう
俺の当初の目的は無駄の無い短いアルゴリズムでこれを表現するとかじゃなくて

ただの、こういう数列生成メソッドの実装
func( 5 , ["a","b"] , [1,2,3] ).take(20) # => [1, 2, 3, 1, "a", 2, 3, 1, 2, "b", 3, 1, 2, 3, "a", 1]

zipとかcycleでそれほど簡潔に書けない事が分かったし
これからはメソッドに引数与えるだけですし

576 :uY:2012/08/21(火) 19:53:34.60
def func n , aa , bb
  y = Enumerator.new do | e |
    a = aa.cycle
    b = bb.cycle 
    [*1..n].cycle { |i|
      r = (i%n) == 0 ? a : b
      e << r.next
    }
  end
end

y = func 5 , ["a","b"] , [1,2,3]

p y.take(20) # => [1, 2, 3, 1, "a", 2, 3, 1, 2, "b", 3, 1, 2, 3, "a", 1, 2, 3, 1, "b"]

y = func 2 , [true] , [false]

p y.take(20) # => [false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true]


ゲームでインターバルの制御に使うんです


577 :デフォルトの名無しさん:2012/08/21(火) 19:54:38.43
あ、ゴメンゴメン、Pythonだと無駄がない再実装できちゃったから怒ってるんだね。
ワンライナー自信あったのにね
逆に読みにくくて無駄ばかりってバレちゃったね

578 :uY:2012/08/21(火) 20:18:18.61
importしないとcycleすら使えないパイソニスタが調子のってんな

579 :uY:2012/08/21(火) 20:19:49.67
Enumeratorすら使いこなせない奴って生きてる意味ある?

580 :デフォルトの名無しさん:2012/08/21(火) 20:52:13.29
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | < >>579は生きる価値なし
   \|   \_/ /  \_____
      \____/


581 :デフォルトの名無しさん:2012/08/21(火) 21:08:45.21
未定義の関数呼び出すと自動でライブラリ読み込む機能もっと流行ればいいのになー

582 :デフォルトの名無しさん:2012/08/21(火) 21:09:56.52
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | < ワロスワロスww
   \|   \_/ /  \_____
      \____/


583 :デフォルトの名無しさん:2012/08/21(火) 21:24:46.52
>>581
バグの温床。

584 :デフォルトの名無しさん:2012/08/21(火) 21:27:58.01
バグというか、無理だろ

585 :デフォルトの名無しさん:2012/08/21(火) 21:28:59.55
>>579
走査中のやつを破壊的変更するuyとか?

586 :デフォルトの名無しさん:2012/08/21(火) 21:31:58.36
>>584
phpで、classのloadだったらやったことあるぞ。ファイル名と、クラス名の関連付けをjavaみたいにして。人がやってるのも見たことあるから、みんなやってそうだと思ってた。

587 :デフォルトの名無しさん:2012/08/21(火) 21:43:49.88
それ、どんなメリットがあるの?
どこから持ってきたのか明示せずに関数を呼ぶとかゴミにしか見えないんだが

588 :デフォルトの名無しさん:2012/08/21(火) 21:45:55.72
584 名前:デフォルトの名無しさん[sage] 投稿日:2012/08/21(火) 21:27:58.01
バグというか、無理だろ

585 名前:デフォルトの名無しさん[sage] 投稿日:2012/08/21(火) 21:28:59.55
>>579
走査中のやつを破壊的変更するuyとか?

586 名前:デフォルトの名無しさん[sage] 投稿日:2012/08/21(火) 21:31:58.36
>>584
phpで、classのloadだったらやったことあるぞ。ファイル名と、クラス名の関連付けをjavaみたいにして。人がやってるのも見たことあるから、みんなやってそうだと思ってた。

587 名前:デフォルトの名無しさん[sage] 投稿日:2012/08/21(火) 21:43:49.88
それ、どんなメリットがあるの?

589 :デフォルトの名無しさん:2012/08/21(火) 21:46:43.49
何?

590 :デフォルトの名無しさん:2012/08/21(火) 21:48:16.01
Pythonで一行目に from * import * と書いて全部の関数をロードするんだろw
実際には出来ないけど、これ最悪w

591 :デフォルトの名無しさん:2012/08/21(火) 21:51:26.34
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

592 :デフォルトの名無しさん:2012/08/21(火) 21:51:53.70
>>576
func の中の y の代入が意味不明。
[*1..n].cycle は冗長。

def func(n, aa, bb)
  Enumerator.new do |y|
    a = aa.cycle
    b = bb.cycle
    loop{ (n-1).times{ y << b.next }; y << a.next }
  end
end

enum = func(5, ["a","b"], [1,2,3])
p enum.take(25)

593 :uY:2012/08/21(火) 21:54:11.33
>>585
初心者は黙ってろ


>>581,>>586
標準ライブラリだけだったら有りではある気がする


594 :デフォルトの名無しさん:2012/08/21(火) 21:56:04.46
>>571
>>573
なるほど、そういう風にかけるのか
うまいなぁ

わりと楽しめた問題でした


595 :uY:2012/08/21(火) 21:57:15.86
>>592
お前見たいのを無能な働き者っていうんだよ
デバッグ用に残してるyだから勝手に取らないで

それとお前さあ・・・
loop{
  このループの中は
(n-1).times{ y << b.next }; y << a.next
}

nextとかtakeやるたびに呼び出される場所なのに
なんでtimesイテレータとか生成してんだよ
実行速度を考えろよ
さっさとコード元に戻せアホ

596 :デフォルトの名無しさん:2012/08/21(火) 21:58:37.68
これやれば7800円ゲット出来たのに。マジでお前らにはその位の価値くらいならギリギリあるのに。
http://www.wolfram.com/training/special-event/mathematica-experts-live-one-liner-competition-2012/

597 :uY:2012/08/21(火) 21:59:28.79
速度も考えれば一番良い実装はこう
def func n , aa , bb
  Enumerator.new do | e |
    a = aa.cycle
    b = bb.cycle 
    [*[b]*n.-(1),a].cycle { |r|
      e << r.next
    }
  end
end

お前らには理解できないと思ってあえて少し処理を残したソースをあげただけ


598 :デフォルトの名無しさん:2012/08/21(火) 22:10:40.71
雑魚すぎこのスレ

599 :デフォルトの名無しさん:2012/08/21(火) 22:51:30.00
雑魚雑魚雑魚雑魚

600 :デフォルトの名無しさん:2012/08/21(火) 23:00:56.06
>>512のrotate!の頃からずいぶん成長したなuy

601 :uy:2012/08/21(火) 23:21:18.92
いや
ろてえとは俺様ライブラリ内部では使ってる
動的に回すリストの変更も行うからサークルのえぬめらぶる化はしない
こんなものはこのスレ用コードに過ぎない

602 :デフォルトの名無しさん:2012/08/21(火) 23:46:16.40
>>595
この手のtimesはコンパイル時にインライン化されるから
ループ毎の生成コストはかからんだろ、jk

603 :uy:2012/08/22(水) 00:00:34.99
へーそうなんだ
覚えとこう

604 :デフォルトの名無しさん:2012/08/22(水) 00:25:23.91
>>593
いや、仕様が把握できてる、自ドメインのクラスだけ。

605 :デフォルトの名無しさん:2012/08/22(水) 02:45:46.45
windowsが陳腐化した
これからはOS作れる言語が流行る
JSとか

606 :デフォルトの名無しさん:2012/08/22(水) 03:37:40.92
rubyよりpythonのほうが読み安いし簡単だと思ってるんだけど
その意識が逆になった人っている?何が理由でなった?

607 :デフォルトの名無しさん:2012/08/22(水) 04:00:04.62
>>605
Prologではなく?


608 :デフォルトの名無しさん:2012/08/22(水) 04:00:52.26
>>597
そのコードだと、cycleが返すEnumeratorを直接返せばいいのでEnumerator.newは冗長。
更に余分な一時変数省いたら>571になる。



609 :uy:2012/08/22(水) 04:55:46.58
勉強しなおせ

610 :uy:2012/08/22(水) 05:05:17.19
>>606
リスト内包表記のほうが優れてるのは認める
つかrubyは標準ではmapがアホみたいに冗長だけど
改良したmap使えば&とる方法がなくはないからね
このスレのコードなんてrubyの本気じゃない

611 :デフォルトの名無しさん:2012/08/22(水) 05:15:19.27
小学生<い、今までのは本気じゃなかったんだもんね〜

612 :uy:2012/08/22(水) 05:18:38.90

module Enumerable
  def dmap
    DelegateMap.new(self)
  end
end

class DelegateMap < BasicObject
  def initialize(enum)
    @enum = enum
  end
  def method_missing(mhd, *args, &blk)
    @enum.map {|elem| elem.__send__(mhd, *args, &blk) }
  end
end

p [*[[1,2,3].cycle]*4,%w[a b].cycle].cycle.take(25).dmap.next


613 :uy:2012/08/22(水) 05:19:54.44
>>608
標準で無限リストを返したいんだよ
take(20)
としても使えて
.next
.next
.next
.next

....
としても使えるEnumuratorがほしい

>>571
だけだと、
takeやった後にnextしてるから無理なのは分かるだろカス

614 :uY:2012/08/22(水) 05:20:40.80
日本語で分かりやすく書いたものを

そのままコードにした方がいいよ。

615 :uy:2012/08/22(水) 06:02:48.38
>>592

>>602

0000 trace 1 ( 5)
0002 trace 1
0004 getdynamic n, 2
0007 putobject 1
0009 opt_minus <ic:4>
0011 send :times, 0, block (3 levels) in func, 0, <ic:1>
0017 pop
0018 trace 1
0020 getdynamic y, 1
0023 getdynamic a, 1
0026 send :next, 0, nil, 0, <ic:2>
0032 opt_ltlt <ic:5>
0034 leave

>0011 send :times, 0, block (3 levels) in func, 0, <ic:1>
>0011 send :times, 0, block (3 levels) in func, 0, <ic:1>
>0011 send :times, 0, block (3 levels) in func, 0, <ic:1>
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

はぁ???
インライン展開されてねーじゃん 死ねば? なんでそういう嘘つくの? >>602

616 :uy:2012/08/22(水) 06:31:57.87
人ってなんで嘘つくの

617 :デフォルトの名無しさん:2012/08/22(水) 06:55:30.67
rubyでバイトコード表示ってどうやんの?

618 :デフォルトの名無しさん:2012/08/22(水) 10:03:58.01
rubyの本気が見たい

619 :uy:2012/08/22(水) 11:07:36.22
ruby --dump=i -e 'puts "1+2=#{1+2}"'

620 :uy:2012/08/22(水) 11:51:08.59
>>602
602 :デフォルトの名無しさん:2012/08/21(火) 23:46:16.40
>>595
この手のtimesはコンパイル時にインライン化されるから
ループ毎の生成コストはかからんだろ、jk


謝る?

621 :uy:2012/08/22(水) 12:23:57.12
>618
ruby2.0で遅延評価入る、ruby2.0になったら誰も手が出せない

require "enumerable/lazy"
a = [*[[1,2,3].cycle]*4,%w[a b].cycle].cycle.lazy.map(&:next)
p a.take(20).to_a

622 :デフォルトの名無しさん:2012/08/22(水) 13:46:32.11
ループとかのインライン化はYARVの目玉のひとつだったんだけど
深刻なバグが見つかって無効化されたまますでに3年経っているらしい。
腐ってやがる。

623 :デフォルトの名無しさん:2012/08/22(水) 14:08:11.50
ワロタwwww

624 :デフォルトの名無しさん:2012/08/22(水) 18:47:35.69
笹田は口だけ野郎ってか

625 :デフォルトの名無しさん:2012/08/22(水) 19:22:24.25
>>622
> ループとかのインライン化はYARVの目玉のひとつ

ソース出せよ

626 :デフォルトの名無しさん:2012/08/22(水) 20:22:45.27
というかバイトコードインタプリタになっただけでも
性能はかなり上がってるわけで

627 :uy:2012/08/22(水) 21:59:15.64
思うんだけどn-1とかやるときのnってせいぜい1〜100程度って事が多い気がするんだよね
そのくらいのパターンはメタしちゃえばって思う
結局動的言語は総当たりでパターン用意するしかまともにインライン化は無理だと思う
四則演算だけは1〜100の範囲であればメタされてますみたいな機構があれば
タイムズにしても定数が来るならインライン化余裕だろ
つか±256までインライン化できたら絶対違う
メモリ使用量がほんの数百倍になるだけで超高速
はやく無限メモリになったらいい

628 :デフォルトの名無しさん:2012/08/22(水) 21:59:40.66
今年のクリスマスプレゼントは何でしょうか?

629 :デフォルトの名無しさん:2012/08/23(木) 00:17:54.90
インライン展開とかされる動的言語ってluaくらいじゃね?

630 :デフォルトの名無しさん:2012/08/23(木) 00:34:46.52
Smalltalkもされるよ。

631 :デフォルトの名無しさん:2012/08/23(木) 00:35:30.40
実行時になってみるとメソッドの実装が差し替えられている可能性もあるし
あるいは最適化後にメソッドの差し替えが起きたら
最適化を巻き戻さないとプログラムの意味が変わってしまう

大昔からSmalltalk処理系とかで研究されている分野ではあるけど
実装は相当めんどくさい

632 :デフォルトの名無しさん:2012/08/23(木) 01:33:51.27
Pythonでバタ臭いmixinしてるのが好き

633 :デフォルトの名無しさん:2012/08/23(木) 01:56:37.90
遅延評価のコード書かれても、わかる人何%ぐらいいるの?

634 :デフォルトの名無しさん:2012/08/23(木) 02:05:07.58
よよ、よ、よ読めます

635 :デフォルトの名無しさん:2012/08/23(木) 02:41:35.92
pythonのpropertyの**関数()、これってなんでこんなことになってるの
def foo():
doc = "The foo property."
def fget(self):
return self._foo
def fset(self, value):
self._foo = value
def fdel(self):
del self._foo
return locals()
foo = property(**foo())

636 :デフォルトの名無しさん:2012/08/23(木) 02:44:12.61
あースペース消えたからこっちに貼るけど
http://ideone.com/cO6aH
**関数()の意味が知りたいんだけどぐぐってもうまく出てこなくて困る

637 :デフォルトの名無しさん:2012/08/23(木) 02:47:16.14
あー最後のニ行でproperty消えてるから
最後のニ行は気にしないでくれ

638 :uY:2012/08/23(木) 08:19:51.97
辞書の展開に決まってんだろ

Python アスタリスクでググレカス

639 :uY:2012/08/23(木) 08:25:28.10
def f;$a=->{yield};end
f{a=$a.clone;$a=->{p 1;a.call}}
loop{$a.call}

それよりこれSEGVでる?

640 :uy:2012/08/23(木) 18:25:44.59
もういいや
忘れて

641 :デフォルトの名無しさん:2012/08/23(木) 21:20:08.26
uyこと忘れられるわけねーーよぉ!!!!

642 :うy:2012/08/24(金) 00:25:38.33
名前にuyっていれるのって流行りなの?

643 :uy:2012/08/24(金) 01:06:57.84
#とか//とかの後に何か書くのと一緒だね

644 :デフォルトの名無しさん:2012/08/24(金) 15:27:16.84
#!/usr/bin/env uy
# -*- coding:uy-8 -*-

645 :デフォルトの名無しさん:2012/08/25(土) 14:26:44.12
          /        ,       ::| |ヽ\    \
          /      /  / |     ::/| :| `、`、    ヽ
           /      /  / |    ::/ |::|  `、',ヽ  ',  ',         r┐ r┐ヾ>
         ,'   i   | :/'  | |  ::/ i:|    ', i ヽ  i  ',.       | | lニ コ
        ,'   |     ! :,'   i||  ::/  ||     || `、 | | |        | レ! _| |.
         |   |    |`i'-,,, | | ::/   |     |  ', | | |        ヽ/(___メ>
          |   |    ||.|  `二=,,__,,,     ,,,__... -!´ト, | |         ,、
      .  | .   i    | |  //:::C,       7::c\ ||ヘ.| |        ((
          |   .|     | /  {::::::::::::}         {::::::::}`、 ,' .| i         ))
        | /´'|     |     ヽ::::::ノ       ヾ::ノ  .|   |        ((
        | {  |    |::::::::         ,    .... |   |         ))
        |  \',   '','''''   __       ::::::::: |   i           ((
        |   .:::',   ',   /    ` ー --、    |   |            ))
        /  .:::::::', ::  ',  /          }    /   |         ((
       / ...:::::::::::'、::.   ',、(          /  ,イ|:: :   |          `
     /  ..:::::::::::/'`、:::.. ',`'' - ,,____ノ,,ィ::´:::i ',:::|:: |         / 7
`-ー-´/ /:::::::::/    `、、 ',   /`、\:::::::::::::::,':::::::,' |::||:: |       ┌‐' 'ー┐ト、
 ̄ ̄/  ./:::::,-{       \ `、、   /  \::::::::,'::::::/  .|:i'|: |        7 /_7 / 」__〉
  /   //  \       \ ヽ/    }::::/:::::/   | |:|        〈_/ヽ_/

646 :デフォルトの名無しさん:2012/08/27(月) 23:23:09.44
速度やリテラルなんて、もはやどうでも良い
仕事があって長期的に幸せな生活できる言語は何れだ

647 :デフォルトの名無しさん:2012/08/28(火) 00:20:03.23
>>646
英語。

648 :デフォルトの名無しさん:2012/08/28(火) 04:36:59.82
PHPの求人あるよ

649 :デフォルトの名無しさん:2012/08/28(火) 05:46:57.74
PHPでオブジェクト指向もできるようだけど、実際やってみると、気乗りがしない。
Rubyが楽だ!
オブジェクト指向をやらないなら、Perlが簡単だ。

650 :デフォルトの名無しさん:2012/08/28(火) 05:53:17.94
PHPのなんかのライブラリで、list()っていう関数ある?
リファレンスは、どこだ?
この名前が衝突していて、エラーになったことがある

651 :デフォルトの名無しさん:2012/08/28(火) 06:35:23.56
>>650
例1 list() の例
http://jp2.php.net/manual/ja/function.list.php

652 :デフォルトの名無しさん:2012/08/28(火) 06:49:36.07
オブジェクト指向をやらなくてもrubyのがperlより楽だよ
perlは、どうしてもperlじゃなきゃヤダみたいな奴しか今は積極的には使ってる奴いないと思う
perlは一世を風靡した実績はあるんだけどな
rubyよりもブランド力はあるけど今となってはただの肩書き

653 :デフォルトの名無しさん:2012/08/28(火) 08:00:00.30
>>652
私はPerlをほとんど知らないから聞くけど、CGIはPerlでなくちゃと言う時代ではない。
それでも、Perlの低落する速度が随分とゆっくりなのは、この言語が他の言語に
移行することを困難にする要素を多々持っているからなのだろうか。

654 :デフォルトの名無しさん:2012/08/28(火) 08:36:21.11
Perl,Python,Perl,JavaScript,Ruby 名前が今ひとつだな。
LISP,SmallTalk,Prolog のような風格のある名前にすればもっと流行った。


655 :デフォルトの名無しさん:2012/08/28(火) 08:40:53.21
>>653
rubyとかphpってCGIだと遅くない?

656 :デフォルトの名無しさん:2012/08/28(火) 11:18:19.00
CGIじゃなくても遅いですよ

657 :デフォルトの名無しさん:2012/08/28(火) 13:19:58.15
遅いのはアルゴリズム、ファイルなんて扱ったら恐ろしく重くなる。
データベースでも同じこと。
全部メモリ上でやれよ。

658 :デフォルトの名無しさん:2012/08/28(火) 13:21:34.93
そこらへんは腕次第だろう。
しかし、起動が遅いのはどうにも。

659 :uy:2012/08/28(火) 15:04:32.24
さっき2chがバグって変なログ出力されたんだけど
UnixがどーたらPHPがどーたらっていうエラーログだった

2chはPHPなのかよ

660 :デフォルトの名無しさん:2012/08/28(火) 15:34:22.23
>>659
httpヘッダに書いてあるだろ。素人か。

661 :uy:2012/08/28(火) 15:44:00.12
お前は普段httpヘッダ見ながら2chやってんのか

662 :デフォルトの名無しさん:2012/08/28(火) 15:49:14.96
>>661
毎回見てどうするボケ

663 :uy:2012/08/28(火) 16:08:30.88
つまりたまにhttpヘッダを見に行く習慣や癖があるってこと?
一応聞いてみようかなー
何のためにそんなことを?

664 :デフォルトの名無しさん:2012/08/28(火) 16:56:23.73
      /⌒ヽ、
    ノ⌒⌒⌒⌒⌒ヽ/ヽir  /〜⌒〜⌒〜⌒〜⌒〜⌒〜ヽ. 
   |人つ人つイつ の  r:::::::::'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::)~~~~ ~~~~~~'-,^^^^"'-
r⌒ヽ| ̄`メ、ル_,.イ´ ̄  |  (:::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::_ノtュ、゙ ,'ィt或アチ`、~"'- ,,,,,)
|    ,ィ或tュ、,'ィt或アチ|  )::::::( ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ヽ 二ノ   ` ‐''"´ ;,  
 ンイ ヽ 二ノ  ト` ‐''"´ \ (::::)                  |   トェェェェェェイ,    : 
   |  ′ トェェェェェェイ,._ 〉  |)::::(    く三)   (三シ   . | ヘヾ'zェェェッ',シ   ,:'
   |   ヘヾ'zェェェッ',シ'   | |:::::)    ̄`メ、_,ルィ 、_,.イ´ ̄, .l、  ` ー--‐ '"  、, '"
   ヽ__` ー--‐ '"' _ノ  ::::| 、,ィ或tュ、゙:ミ {,'ィt或アチ |::::~,/'"/~~~~~/'"/~ヽ
    ノ:::::::: ̄ ̄ ̄ ̄ :∧r⌒ヽ|. `ヽ 二ノ    ト ` ‐''"´ |  `,-'    `,-' ::::::ヽ
   (::::::::::/  V三'|:::/ ヾ|   ヾ     ,r'、  ヽ     | ̄ ̄ ̄ ̄ ̄ ̄ ̄|:::::::ヽ
  /::::::::::|  ̄`メ、_V ィ、_,.|          ,/゙ー、  ,r'ヽ   |\   / ⌒\ |::::::|
 /::::r⌒ヽ| 、,ィ或tュ、ミ {'ヽンイ    ,ノ    `'"  ,丶.  |ヽノ ヽ/⌒ヽノ |::::::|
〈:::::::|     `ヽ 二ノ   ト ` ‐''|.    ′ トェェェェェェイ,._ 〉∴ |ュ、゙:ミ {,'ィt或アチ |::::::|
〈::::::::ゝ_イ      ,r'、  ヽ  | ∴∵ ヘヾ'zェェェッ',シ'∵∴|ノ    ト ` ‐''"´ |ヽ⌒r
 レっ::::::::::ヽ   ,/゙ー、  ,r''ヽ | ∵∴∵ ` ー--‐ '"''´∵∴| i ,、 ,..、ヽ         |
   ヽ〜´~ヽ ,ノ    `'"  ,丶|  ∵∴∵∴∵∴∵∴∴ |トェェェェェェイ,._〉      |
         \  トェェェェェェイ,. | ∵∴∵∴∵∴∵∴∴∵|ヾ'zェェェッ',シ    、ン
           ヽ ヾ'zェェェッ',シ \ ∵∴∵∴∵∴∵∴/_` ー--‐ '" ___/


665 :デフォルトの名無しさん:2012/08/28(火) 16:57:30.51
        /|
            / ..::;|                                     
         /....::::;;;;;;|                                        /\
      /  ....::::;;;;;;|                  /|                    / ..::;;\
   /    ....::::;;;;;;;;|__               /..::;;;lへ                  / ...:::;;;;;\
 /               ̄ ─ ___      /....::::;;;;;;|;;;;;;\              _/   ....::::;;;;;;\
/   /                  ̄ ‐-' .....::::;;;;;;;;|;;;;;;;;;;;\      _-― ̄ ̄      ...::::;;;;;;;;;\
     、、_j_j_j_ ,.                 ....::::;;;;;;;;;;;;;|;;;;;;;;;;;;;;;;\_,-― ̄               ...:::;;;;;;;;;\
   、_>';三●;=}`メ._,                  ....::::;;;;;;;;;|;;;;;;;;;;;;;;::::....                    \:;;;;;;;ヽ
  く(   ゞ'丕シ   ヽ_,                \;;;;;;;|;;;;;;;;::::....               、、_j_j_j_ ,  ....::::;;;;;;;ヽ
   ´ ニ=;ゞ、______,ム         、、_j_j_j_ , ....::::;;;;;;;;|;;;;;;;::::....             、_γ'"~   乙メノ_,...:::;;;;;;;ヽ
      ´ ゙ ゙ ` `         、_,>''"~ ̄ `メ._,;;;;;;;;;;;|;;;;;、、_j_j_j_ ,;         、γ     {三●)>..::::;;;;;;;;;ヽ
                    く(,r'乙W△.    ヽ_, ;;;;;|γ△ ̄ ~ ` メ ,;       ム、_____,ゞ'丕ニ` ...:::;;;;;;;;ヽ
             γ          ´ ニ=;●;=}______,ム ;;;;;|●;=}      )>         ´ ゙ ゙ ` `  ...:::;;;;;;;;ヽ
            /             ´ ゙ ゙ ` `::;;;;;;;;|'丕シ__,_、、=ニ`                   ..:::::;;;;;;|


666 :デフォルトの名無しさん:2012/08/28(火) 17:17:43.56
>>661
有名サイトのヘッダくらい好奇心で覗いてみようよ
パケットキャプチャしてみようよ

2chのヘッダは2chに書き込むくらいのネラーなら知っていて当然だと思うけどね
俺は他にcookpad twitter facebookのヘッダを見たりしてるぞ

667 :デフォルトの名無しさん:2012/08/28(火) 17:31:49.13
技術者なら興味くらいは持つよな
普段行くサイトを全部見たりは流石にしないが
少なくとも「何故」とは思わない

668 :デフォルトの名無しさん:2012/08/28(火) 17:37:21.68
ターミナルで手軽にデコードされたヘッダ見る方法教えて

669 :デフォルトの名無しさん:2012/08/28(火) 17:42:30.32
>>666
お前何様なんですか?
何が当然だよ。

670 :デフォルトの名無しさん:2012/08/28(火) 17:46:27.65
      /⌒ヽ、
    ノ⌒⌒⌒⌒⌒ヽ/ヽir  /〜⌒〜⌒〜⌒〜⌒〜⌒〜ヽ. 
   |人つ人つイつ の  r:::::::::'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::)~~~~ ~~~~~~'-,^^^^"'-
r⌒ヽ| ̄`メ、ル_,.イ´ ̄  |  (:::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::_ノtュ、゙ ,'ィt或アチ`、~"'- ,,,,,)
|    ,ィ或tュ、,'ィt或アチ|  )::::::( ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ヽ 二ノ   ` ‐''"´ ;,  
 ンイ ヽ 二ノ  ト` ‐''"´ \ (::::)                  |   トェェェェェェイ,    : 
   |  ′ トェェェェェェイ,._ 〉  |)::::(    く三)   (三シ   . | ヘヾ'zェェェッ',シ   ,:'
   |   ヘヾ'zェェェッ',シ'   | |:::::)    ̄`メ、_,ルィ 、_,.イ´ ̄, .l、  ` ー--‐ '"  、, '"
   ヽ__` ー--‐ '"' _ノ  ::::| 、,ィ或tュ、゙:ミ {,'ィt或アチ |::::~,/'"/~~~~~/'"/~ヽ
    ノ:::::::: ̄ ̄ ̄ ̄ :∧r⌒ヽ|. `ヽ 二ノ    ト ` ‐''"´ |  `,-'    `,-' ::::::ヽ
   (::::::::::/  V三'|:::/ ヾ|   ヾ     ,r'、  ヽ     | ̄ ̄ ̄ ̄ ̄ ̄ ̄|:::::::ヽ
  /::::::::::|  ̄`メ、_V ィ、_,.|          ,/゙ー、  ,r'ヽ   |\   / ⌒\ |::::::|
 /::::r⌒ヽ| 、,ィ或tュ、ミ {'ヽンイ    ,ノ    `'"  ,丶.  |ヽノ ヽ/⌒ヽノ |::::::|
〈:::::::|     `ヽ 二ノ   ト ` ‐''|.    ′ トェェェェェェイ,._ 〉∴ |ュ、゙:ミ {,'ィt或アチ |::::::|
〈::::::::ゝ_イ      ,r'、  ヽ  | ∴∵ ヘヾ'zェェェッ',シ'∵∴|ノ    ト ` ‐''"´ |ヽ⌒r
 レっ::::::::::ヽ   ,/゙ー、  ,r''ヽ | ∵∴∵ ` ー--‐ '"''´∵∴| i ,、 ,..、ヽ         |
   ヽ〜´~ヽ ,ノ    `'"  ,丶|  ∵∴∵∴∵∴∵∴∴ |トェェェェェェイ,._〉      |
         \  トェェェェェェイ,. | ∵∴∵∴∵∴∵∴∴∵|ヾ'zェェェッ',シ    、ン
           ヽ ヾ'zェェェッ',シ \ ∵∴∵∴∵∴∵∴/_` ー--‐ '" ___/


671 :デフォルトの名無しさん:2012/08/28(火) 18:05:00.19
>>667
黙れよバーカ

672 :デフォルトの名無しさん:2012/08/28(火) 18:18:27.39
>>668
curl -I $url

673 :デフォルトの名無しさん:2012/08/28(火) 18:28:24.85
>>672
でもHEADだとGETと違うヘッダを返すようなとこもあるから、-iのがいい時も。

674 :uy:2012/08/29(水) 15:43:43.00
def f v = 0
  [ ->n{ v = n } , ->{ v } ]
end
a , b = f 4

p b.call #=> 4

a.call 20

p b.call #=> 20


天才的なゲッターセッター

675 :デフォルトの名無しさん:2012/08/29(水) 17:35:56.74
ソーシャルゲーって、どんな理由からビックリマンシールみたいな古いキャラデザ使っているんだろう
これならローグライクなASCII文字にでもした方がマシそうなもんだけど
あいつら、もう少しバカを教育するようなアカデミックなサービスでも提供できないのか

676 :デフォルトの名無しさん:2012/08/29(水) 23:02:04.31
そりゃビックリマンの最新の新シリーズと
タイアップしてるんだろう。

それがどれか知らないけど。

677 :デフォルトの名無しさん:2012/08/29(水) 23:31:57.02
>>674
継承は論外のゴミだし、セッタゲッタもクロージャで出来るし
本当にOOPはゴミだったな

678 :デフォルトの名無しさん:2012/08/29(水) 23:36:26.65
クロージャもセッタゲッタで出来るし…

679 :デフォルトの名無しさん:2012/08/29(水) 23:58:47.83
目的が理解できなきゃ制約でしかないもんな。

680 :デフォルトの名無しさん:2012/08/30(木) 00:11:59.60
クロージャをベースにしてちょっといじると
オブジェクト指向相当のものができるようになるのは有名な話じゃないの
Paul Grahamの『ANSI Common Lisp』の最終章あたりで
Lispにマクロをかぶせて簡易オブジェクト指向言語を構築する話があったはず

681 :デフォルトの名無しさん:2012/08/30(木) 00:18:55.98
最初からオブジェクト指向言語使えば良いじゃんw

682 :デフォルトの名無しさん:2012/08/30(木) 00:31:06.46
関数オブジェクトは型を考えなければ難しくないが
型を表現しようとするとCのポインタ型と同じ位の難易度がある

683 :デフォルトの名無しさん:2012/08/30(木) 00:34:27.54
RubyはCGIじゃ全く使い物にならないね。
Rubyは環境整えるのが面倒なんだよね。
その上、その環境にも流行り廃りが早いし。
知識の陳腐化が早い。
その点、PHPやPerlは互換性高いから過去の知識を活かせる。
CGIで動かしてもそこそこ早いし。

684 :デフォルトの名無しさん:2012/08/30(木) 01:46:07.68
日本でRubyを牽引したtDiaryはCGIで動いてるとこが山程ありますが

685 :デフォルトの名無しさん:2012/08/30(木) 02:05:12.06
いや、RubyはCGI用としてはお手軽。

アクセス量少ないならApacheのリビルドや
モジュールの導入不要。
.rhtmlもconfの書き換えだけでどうにかなる。

あと互換性に関しては
PHP・Perlもバージョンアップで
かなり言語仕様いじってるからw

686 :デフォルトの名無しさん:2012/08/30(木) 02:16:05.10
PHPやPerlの互換性は高いね。Rubyが論外に酷いという方が正確な表現かもだが。

687 :デフォルトの名無しさん:2012/08/30(木) 02:26:44.75
Rubyの言語仕様の変化ってシンボルの型と
イテレーターの識別子のスコープぐらいだろ。
Perl6のようなドラスティックな大変化はRubyでは起きていないじぇ?

688 :デフォルトの名無しさん:2012/08/30(木) 02:30:05.92
>>687
文字リテラルの型も変わったかと

689 :デフォルトの名無しさん:2012/08/30(木) 02:33:01.25
tdiaryといえば高木浩光のブログがtdiaryだよね。
いつも落ちてる。
KENTの掲示板の毛が生えた程度の低機能ソフトなのに。
Rubyだからかな。

690 :デフォルトの名無しさん:2012/08/30(木) 02:38:41.93
はあ?Rubyは国産だからちょっと不便でも積極的に使うべきなんですけど?よって高木浩光は神。

691 :デフォルトの名無しさん:2012/08/30(木) 03:15:45.26
俺は特に国産にこだわりはないからWordPressつかうけど

692 :デフォルトの名無しさん:2012/08/30(木) 03:21:35.83
日本語での情報量が違うからな
いくら日本人が英語を勉強したところで
本人のリーディング速度は日本語の方が速い

693 :デフォルトの名無しさん:2012/08/30(木) 03:22:40.79
いくら高速に読んでもそれが使い物にならなかった意味ないだろ!

694 :uy:2012/08/30(木) 03:25:12.39
ラテン語でも読んでろカス

695 :デフォルトの名無しさん:2012/08/30(木) 06:01:28.71
みんな最初は純粋だった
2ちゃんやってるうちに汚れてしまった
質問しても、揚げ足・コピペ・上から目線
もともと過疎だったのが、ますます過疎化していくんですよねぇ

696 :デフォルトの名無しさん:2012/08/30(木) 07:13:58.61
気づいているだろうか
ちょうどJAVAが注目され始めた時期からこうなったんだ
あいつが全部悪い
世界で最も優れた言語の1つでもあるrubyやっていれば救われるのに

697 :デフォルトの名無しさん:2012/08/30(木) 07:22:03.21
javaでは到底マネできないようなrubyのコードおしえて

698 :デフォルトの名無しさん:2012/08/30(木) 07:31:20.47
PHPはしょっちゅう更新する必要があるからな
公開鯖で使うにはいろいろと手間がかかりすぎる

699 :デフォルトの名無しさん:2012/08/30(木) 07:50:13.61
あのなぁ〜言っとくけどRubyは国産じゃねーからっ。
モルモン産だからっ!

700 :デフォルトの名無しさん:2012/08/30(木) 07:53:42.09
モンゴル?

701 :デフォルトの名無しさん:2012/08/30(木) 15:08:10.10
鯖用意できるなら、cgiもc/c++で書いた方が保守きかね?w

702 :デフォルトの名無しさん:2012/08/30(木) 15:18:52.78
>>701
cならcgiじゃなくてapacheのmodにした方がよくね?

703 :デフォルトの名無しさん:2012/08/30(木) 15:48:56.05
                         ____       _________       /∨∨∨∨∨∨ ヽ
     / ̄ ̄ ̄ ̄\,,       / __,,,,,,,,,,,,__  \    >            |        |イアン|ジャイアンジャイアl
    /_____  ヽ     / /エモンドラエヽ   \  > _______  |       |゙ャイアンジャイアンジャイl
    |ビタノビタノビタノ|  |    / /ドラエモンドラエモ\    ヽ  ̄ |オスネオスネス\|  |       /ジャイアンジャイアンジャ
    |ノビタノビタノビタ|___/    |/.モンドラエモンドラエモントヽ   | _ |スネオスネオスネVオスi      |ンジャイアンジャイアンジャ|
    |タノビタノビタノビ 6 l     |エモンドラエモンドラエモンド|   | \スネオスネオスネオスネ丿      |イアンジャイアンジャイアン|
.    ヽノビタノビタノビタ,-′    |.エモンドラエモンドラエモンド|   l   \ネオスネオスネオ/       \ャイアンジャイアンジ/
      ヽビタノビタノ/ヽ      ヽエモンドラエモンドラエモン/ /    /オスネオスネオく         /        ヽ
      /        ヽ     \モンドラエモンドラエモ/ /      ̄/      ヽ      /           ヽ
      | |        |      o━━━━━━━━┥      | |        |     | |            |
 シュッ i||!|  |        |  シュッ i||!|/              |  シュッ i||!|  |        |  シュッ i||!| |            |
シュッ i|!i|!i ノ _____| シュッ i|!i|!i              | シュッ i|!i|!i ノ _____|シュッ i|!i|!i ノ _______ |
    (          /    (               o /      (         /     (             /
      ヽ───┴─ ′     ヽ─────── ′       ヽ───┴─       ヽ--───┴──

704 :デフォルトの名無しさん:2012/08/30(木) 15:49:49.26
 
   ヾ;ヽ、 _ _,ィシ'
      `゙`フJ=、
      」|,、-'⌒ヽ_
      |i;;;;;i _(`ヽ--゙- 、
      r',、-'´     L;;;ヾヽ、
     /;;;;;r'     rー _,ヾ;!. \
    ./L;;;;i    ;i ;!i ヾー、゙! ____ ヽ
   /   i;;i  _} ノ;ノく;;. {;l; ,j. { *.} `! ヽ
   .!   i;;i,、=_‐''ヽヾ;ヽ \ヽ;==く;:〈 ゙、
   |    7/ {.*.} _/ノi;;(   ヽ \ ヾ;;、 ゙i,
   |   | L、-゙=シ  |;;;:..  ヽ、 \ヾ;、 l
   |    `゙'i;;;:i     ヾ' __  _,rミ`ヾ;!じ' |
   .! ,: ;;,   i;;;:i    /Vr‐、,.-'゙_,ノ゙\;;;:. !
    ゙i;;:;;;;;:;,.,.,..i;;:i,.,.,,;;/ r─‐''''"_,.ィヾー》;:.|
    ゙、;;;; ;;;;;;;;;゙i;i;;;;;;/ / ,r'i'''T´゙L、-ク:| |;;;;;|
      ヽ;i ヾ;;;::゙i;゙i;:| ,j /ヾー^"__,.-rj;ツ };;;j
      \;;;;;;;;;ヾ'ヽ<ヽj´|´゙! _j=' ./;;/
       \;;;;;;;;;;;;;;;;;;\`゙''"´_,、-'゙;;;;;/
          ゙ヽ、;;;;;;;;;;;;;;;`゙"_,,、-'´/
            `゙'''''ー--─'''´



705 :デフォルトの名無しさん:2012/08/30(木) 15:50:37.91

   ヾ;ヽ、 _ _,ィシ'
      `゙`フJ=、
      」|,、-'⌒ヽ_
      |i;;;;;i _(`ヽ--゙- 、
      r',、-'´     L;;;ヾヽ、
     /;;;;;r'     rー _,ヾ;!. \
    ./L;;;;i    ;i ;!i ヾー、゙! ____ ヽ
   /   i;;i  _} ノ;ノく;;. {;l; ,j. { *.} `! ヽ
   .!   i;;i,、=_‐''ヽヾ;ヽ \ヽ;==く;:〈 ゙、
   |    7/ {.*.} _/ノi;;(   ヽ \ ヾ;;、 ゙i,
   |   | L、-゙=シ  |;;;:..  ヽ、 \ヾ;、 l
   |    `゙'i;;;:i     ヾ' __  _,rミ`ヾ;!じ' |
   .! ,: ;;,   i;;;:i    /Vr‐、,.-'゙_,ノ゙\;;;:. !
    ゙i;;:;;;;;:;,.,.,..i;;:i,.,.,,;;/ r─‐''''"_,.ィヾー》;:.|
    ゙、;;;; ;;;;;;;;;゙i;i;;;;;;/ / ,r'i'''T´゙L、-ク:| |;;;;;|
      ヽ;i ヾ;;;::゙i;゙i;:| ,j /ヾー^"__,.-rj;ツ };;;j
      \;;;;;;;;;ヾ'ヽ<ヽj´|´゙! _j=' ./;;/
       \;;;;;;;;;;;;;;;;;;\`゙''"´_,、-'゙;;;;;/
          ゙ヽ、;;;;;;;;;;;;;;;`゙"_,,、-'´/
            `゙'''''ー--─'''´



706 :デフォルトの名無しさん:2012/08/30(木) 15:51:14.51

   ヾ;ヽ、 _ _,ィシ'
      `゙`フJ=、
      」|,、-'⌒ヽ_
      |i;;;;;i _(`ヽ--゙- 、
      r',、-'´     L;;;ヾヽ、
     /;;;;;r'     rー _,ヾ;!. \
    ./L;;;;i    ;i ;!i ヾー、゙! ____ ヽ
   /   i;;i  _} ノ;ノく;;. {;l; ,j. { *.} `! ヽ
   .!   i;;i,、=_‐''ヽヾ;ヽ \ヽ;==く;:〈 ゙、
   |    7/ {.*.} _/ノi;;(   ヽ \ ヾ;;、 ゙i,
   |   | L、-゙=シ  |;;;:..  ヽ、 \ヾ;、 l
   |    `゙'i;;;:i     ヾ' __  _,rミ`ヾ;!じ' |
   .! ,: ;;,   i;;;:i    /Vr‐、,.-'゙_,ノ゙\;;;:. !
    ゙i;;:;;;;;:;,.,.,..i;;:i,.,.,,;;/ r─‐''''"_,.ィヾー》;:.|
    ゙、;;;; ;;;;;;;;;゙i;i;;;;;;/ / ,r'i'''T´゙L、-ク:| |;;;;;|
      ヽ;i ヾ;;;::゙i;゙i;:| ,j /ヾー^"__,.-rj;ツ };;;j
      \;;;;;;;;;ヾ'ヽ<ヽj´|´゙! _j=' ./;;/
       \;;;;;;;;;;;;;;;;;;\`゙''"´_,、-'゙;;;;;/
          ゙ヽ、;;;;;;;;;;;;;;;`゙"_,,、-'´/
            `゙'''''ー--─'''´



707 :デフォルトの名無しさん:2012/08/30(木) 15:51:57.76

   ヾ;ヽ、 _ _,ィシ'
      `゙`フJ=、
      」|,、-'⌒ヽ_
      |i;;;;;i _(`ヽ--゙- 、
      r',、-'´     L;;;ヾヽ、
     /;;;;;r'     rー _,ヾ;!. \
    ./L;;;;i    ;i ;!i ヾー、゙! ____ ヽ
   /   i;;i  _} ノ;ノく;;. {;l; ,j. { *.} `! ヽ
   .!   i;;i,、=_‐''ヽヾ;ヽ \ヽ;==く;:〈 ゙、
   |    7/ {.*.} _/ノi;;(   ヽ \ ヾ;;、 ゙i,
   |   | L、-゙=シ  |;;;:..  ヽ、 \ヾ;、 l
   |    `゙'i;;;:i     ヾ' __  _,rミ`ヾ;!じ' |
   .! ,: ;;,   i;;;:i    /Vr‐、,.-'゙_,ノ゙\;;;:. !
    ゙i;;:;;;;;:;,.,.,..i;;:i,.,.,,;;/ r─‐''''"_,.ィヾー》;:.|
    ゙、;;;; ;;;;;;;;;゙i;i;;;;;;/ / ,r'i'''T´゙L、-ク:| |;;;;;|
      ヽ;i ヾ;;;::゙i;゙i;:| ,j /ヾー^"__,.-rj;ツ };;;j
      \;;;;;;;;;ヾ'ヽ<ヽj´|´゙! _j=' ./;;/
       \;;;;;;;;;;;;;;;;;;\`゙''"´_,、-'゙;;;;;/
          ゙ヽ、;;;;;;;;;;;;;;;`゙"_,,、-'´/
            `゙'''''ー--─'''´



708 :デフォルトの名無しさん:2012/08/30(木) 15:54:11.46

   ヾ;ヽ、 _ _,ィシ'
      `゙`フJ=、
      」|,、-'⌒ヽ_
      |i;;;;;i _(`ヽ--゙- 、
      r',、-'´     L;;;ヾヽ、
     /;;;;;r'     rー _,ヾ;!. \
    ./L;;;;i    ;i ;!i ヾー、゙! ____ ヽ
   /   i;;i  _} ノ;ノく;;. {;l; ,j. { *.} `! ヽ
   .!   i;;i,、=_‐''ヽヾ;ヽ \ヽ;==く;:〈 ゙、
   |    7/ {.*.} _/ノi;;(   ヽ \ ヾ;;、 ゙i,
   |   | L、-゙=シ  |;;;:..  ヽ、 \ヾ;、 l
   |    `゙'i;;;:i     ヾ' __  _,rミ`ヾ;!じ' |
   .! ,: ;;,   i;;;:i    /Vr‐、,.-'゙_,ノ゙\;;;:. !
    ゙i;;:;;;;;:;,.,.,..i;;:i,.,.,,;;/ r─‐''''"_,.ィヾー》;:.|
    ゙、;;;; ;;;;;;;;;゙i;i;;;;;;/ / ,r'i'''T´゙L、-ク:| |;;;;;|
      ヽ;i ヾ;;;::゙i;゙i;:| ,j /ヾー^"__,.-rj;ツ };;;j
      \;;;;;;;;;ヾ'ヽ<ヽj´|´゙! _j=' ./;;/
       \;;;;;;;;;;;;;;;;;;\`゙''"´_,、-'゙;;;;;/
          ゙ヽ、;;;;;;;;;;;;;;;`゙"_,,、-'´/
            `゙'''''ー--─'''´



709 :デフォルトの名無しさん:2012/08/30(木) 15:55:30.82
初心者です。
やはりperlは難易度高いでしょうか?
今までBasicしかやったことありません。

710 :デフォルトの名無しさん:2012/08/30(木) 15:58:56.08
>>709
basicとかgosub地獄で難易度高すぎだよ。

711 :デフォルトの名無しさん:2012/08/30(木) 16:03:36.61
perlなんて勉強して楽しい?ww

712 :デフォルトの名無しさん:2012/08/30(木) 16:04:11.47
初心者です。パイソンは初心者には難しいですかね?

713 :デフォルトの名無しさん:2012/08/30(木) 16:07:24.38
>>712
難しいし必要ないです。
だいたいプログラミング言語大杉なんですよ。


714 :デフォルトの名無しさん:2012/08/30(木) 16:08:28.12
初心者はきちんと叱ってくれるコンパイラのいるJavaとかがいいと思うぞ。

715 :デフォルトの名無しさん:2012/08/30(木) 16:14:08.12
>>714
javawwwwwwwwwwwwwwwwwwwwww
いつの言語だよwwwwwwwwwwww
お前さぁwwwwwwwwwwwwwwwwww


やっぱりOs勉強すればいいんじゃないか

716 :デフォルトの名無しさん:2012/08/30(木) 16:15:09.23
あのなぁ〜言っとくけどRubyは国産じゃねーからっ。
モルモン産だからっ!

717 :デフォルトの名無しさん:2012/08/30(木) 16:17:17.35
pythonとwindows7ってどっちが難しい?

718 :デフォルトの名無しさん:2012/08/30(木) 16:19:08.93
日本IBM元社長が盗撮容疑 警視庁が書類送検へ 駅で女性のスカート内にiPod入れ
2012.8.30 13:15
http://sankei.jp.msn.com/affairs/news/120830/crm12083013160012-n1.htm

 女性のスカート内を録画機能付き携帯型音楽プレーヤー「iPod」で盗撮したとして、
東京都迷惑防止条例違反容疑で、日本IBMの大歳卓麻元社長(63)が警視庁四谷署の
取り調べを受けていたことが30日、捜査関係者への取材で分かった。同署は書類送検する方針。

 捜査関係者によると、大歳元社長は、22日午前8時ごろ、新宿区四谷のJR四ツ谷駅の
エスカレーターで前に立っていた女性のスカート内にiPodを入れて下着などを盗撮した
疑いが持たれている。盗撮を認めているという。

 大歳元社長は現在、同社の最高顧問を務めている。

719 :デフォルトの名無しさん:2012/08/30(木) 16:21:05.84
>>718
スレ違い
ボケ

720 :デフォルトの名無しさん:2012/08/30(木) 16:23:23.43
大学のプログラミングでperlやってるんですが
3年になったら何言語やるんでしょう?

1年 C java Basic Javascript ruby
2年 C++ perl
な感じです。

2学期後期は何ですか?

721 :デフォルトの名無しさん:2012/08/30(木) 16:24:37.36
perlとか名前だせーwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
恥ずかしすぎるwwwwwwwwwwww

722 :デフォルトの名無しさん:2012/08/30(木) 16:35:15.64
>>720
大学名聞かなきゃわかんないな。

設計を教えない学校があるのがさっぱりわからん。

723 :デフォルトの名無しさん:2012/08/30(木) 16:42:37.93
>>720
学生なら年度ごとにシラバスもらってるはずだからそれ見ればわかるよ


724 :デフォルトの名無しさん:2012/08/30(木) 16:43:15.98
>>722
専門学校ですね
>>723
うるさい

725 :デフォルトの名無しさん:2012/08/30(木) 16:44:40.90
>>722
おっぱい?

726 :デフォルトの名無しさん:2012/08/30(木) 16:47:06.93
PHPって名前がとっつきにくい
もっと意味のある文字列にすればいいのに
ところでWindowsにはパイソンソフトありますか?
教えろカス共

727 :デフォルトの名無しさん:2012/08/30(木) 16:48:42.03
おっぱおっぱお

728 :デフォルトの名無しさん:2012/08/30(木) 16:50:18.65
ばっはばっはー

729 :デフォルトの名無しさん:2012/08/30(木) 16:54:23.65
パイソソソフトってなんだよ。

730 :デフォルトの名無しさん:2012/08/30(木) 17:05:30.08
うんこ

731 :デフォルトの名無しさん:2012/08/30(木) 17:21:11.18
もっともつまらないプログラミング言語は何?

732 :デフォルトの名無しさん:2012/08/30(木) 17:28:14.03
PHPって名前紛らわしいな
ネーミングセンスなし

733 :デフォルトの名無しさん:2012/08/30(木) 17:30:54.76
このスレ次はいらないね

734 :デフォルトの名無しさん:2012/08/30(木) 17:31:24.77
                       ____       _________       /∨∨∨∨∨∨ ヽ
     / ̄ ̄ ̄ ̄\,,       / __,,,,,,,,,,,,__  \    >            |        |イアン|ジャイアンジャイアl
    /_____  ヽ     / /エモンドラエヽ   \  > _______  |       |゙ャイアンジャイアンジャイl
    |ビタノビタノビタノ|  |    / /ドラエモンドラエモ\    ヽ  ̄ |オスネオスネス\|  |       /ジャイアンジャイアンジャ
    |ノビタノビタノビタ|___/    |/.モンドラエモンドラエモントヽ   | _ |スネオスネオスネVオスi      |ンジャイアンジャイアンジャ|
    |タノビタノビタノビ 6 l     |エモンドラエモンドラエモンド|   | \スネオスネオスネオスネ丿      |イアンジャイアンジャイアン|
.    ヽノビタノビタノビタ,-′    |.エモンドラエモンドラエモンド|   l   \ネオスネオスネオ/       \ャイアンジャイアンジ/
      ヽビタノビタノ/ヽ      ヽエモンドラエモンドラエモン/ /    /オスネオスネオく         /        ヽ
      /        ヽ     \モンドラエモンドラエモ/ /      ̄/      ヽ      /           ヽ
      | |        |      o━━━━━━━━┥      | |        |     | |            |
 シュッ i||!|  |        |  シュッ i||!|/              |  シュッ i||!|  |        |  シュッ i||!| |            |
シュッ i|!i|!i ノ _____| シュッ i|!i|!i              | シュッ i|!i|!i ノ _____|シュッ i|!i|!i ノ _______ |
    (          /    (               o /      (         /     (             /
      ヽ───┴─ ′     ヽ─────── ′       ヽ───┴─       ヽ--───┴──

735 :デフォルトの名無しさん:2012/08/30(木) 17:40:35.94
うおおおおおおおおおおおおおおおおおおおおぉ

736 :デフォルトの名無しさん:2012/08/30(木) 21:41:28.99
次スレいらないね

737 :デフォルトの名無しさん:2012/08/30(木) 22:20:33.95
そうだね

738 :デフォルトの名無しさん:2012/08/30(木) 22:29:50.73
あのなぁ〜言っとくけどRubyは国産じゃねーからっ。
モルモン産だからっ!

739 :デフォルトの名無しさん:2012/08/30(木) 22:32:41.49
おっぱいの飲み方教えて

740 :デフォルトの名無しさん:2012/08/30(木) 22:33:36.82
しゃぶれよ

741 :デフォルトの名無しさん:2012/08/31(金) 00:38:34.37
ぶっさーwwwwwww

742 :デフォルトの名無しさん:2012/08/31(金) 01:24:19.38
>>720
専門学校は大学じゃないだろ
それにしても本当に役に立たない講義ばっかだこと

743 :デフォルトの名無しさん:2012/08/31(金) 01:27:43.86
専門学校ってそんなに色々な言語やるのか。即戦力としては大卒より遥かに使えそうだな
というか大学生は情報系でもあまりプログラミング出来ない

744 :デフォルトの名無しさん:2012/08/31(金) 01:37:16.77
それに専門卒のが経験年数長くなるしな。
ただ、プログラミングできちゃうと設計の勉強しない奴が多くて困る。プログラミング能力がイマイチで、破綻したりするやつの方がいいのかな。

745 :デフォルトの名無しさん:2012/08/31(金) 01:55:03.30
>>743
大学で学ぶのはロボティクスやニューラルネット、パーサーだとか
基本的には下位レイヤーでしか役立たないよ
てか、専門学校の内容って業務系以外で役に立たないでしょ

746 :デフォルトの名無しさん:2012/08/31(金) 01:57:54.15
大手のメーカー系を落ちた情報システム科は基本的に無能扱いされる運命w

747 :デフォルトの名無しさん:2012/08/31(金) 01:59:12.82
実際は業務を担当する人間が多く必要だろうからなあ

748 :デフォルトの名無しさん:2012/08/31(金) 02:08:37.81
業務系なんて国立の情報科を出る必要が全くないよ
てか、業務系でやってることは何れもjavaで十分に見えるんだけど、
専門学校の講師供はカリキュラムを見直せよ

749 :デフォルトの名無しさん:2012/08/31(金) 02:16:36.31
日本には大企業よりも中小企業のほうが多い。
中小企業が全体の99.7%を占めるって知ってる?

何が言いたいかというと、必要とされる仕事ってのは
中小企業でやる仕事がほとんどってことだよ。

大学でた人は0.3%よりもはるかに多いだろ?
つまり、大学でた人の殆どは中小企業に就職する。

じゃあ中小企業で何をやるか、
自ずとどんな仕事が多いかわかるだろう?
そんな高度で立派な仕事なんてまず必要とされないから。

750 :デフォルトの名無しさん:2012/08/31(金) 02:18:55.26
中小企業でもニッチ市場を狙って制御やデータマイングやってるところあんだろ
基本的に中小企業の経営者は計算機の世界に理解がないし、学歴もダメw
ジジイの資産を肥やすなら大卒のベンチャーに就職した方がまだマシだよ

751 :デフォルトの名無しさん:2012/08/31(金) 02:24:32.47
おまえ等が専門卒じゃないことはわかった
専門は全てにおいて大学に劣る
専門知識に特化するわけじゃなくて大学生とくらべて専門知識しか持ってないだけの話

752 :デフォルトの名無しさん:2012/08/31(金) 02:37:40.45
大学生あるいは専門学校生といった所で
その質はピンキリなわけだから、雲をつかむような話にしかならんよ

753 :デフォルトの名無しさん:2012/08/31(金) 02:40:40.84
あれ、語調がuyっぽい人がいるw
だいたい新しい言語ってプロジェクトに参加してから働きながら覚えるものじゃないのか?
ガベコレ付きの、それも賞味が切れた言語ばかり教えてどうすんのさ
あれじゃ、ピラミッド構造の最下層でコーダーするためにあるようなものじゃないか
あれならc++とjsのイディオム集にでも時間割いた方がマシだよ
カリキュラムが本質的に馬鹿げている。


754 :デフォルトの名無しさん:2012/08/31(金) 02:45:18.82
>>753
いろんな言語やっといて基礎が身についてないと、新しい言語の理解も遅いと思うけどね。
lispを理解したら今まで使ってた言語も、よりわかるようになったよ。

755 :デフォルトの名無しさん:2012/08/31(金) 02:48:56.29
>>754
大学はcとscheme/prolog/ocamlあたりしか教えないよ
それ以外はプログラミングアプローチとして新しいものがないってさ
せめてOOPとデザパタぐらいはカリキュラムを新しくして欲しいところ

756 :デフォルトの名無しさん:2012/08/31(金) 02:53:44.50
全言語覚えさせりゃ良い

757 :デフォルトの名無しさん:2012/08/31(金) 02:55:43.92
比較プログラム言語論を必修にすればよい

758 :デフォルトの名無しさん:2012/08/31(金) 02:56:44.73
そんなだからデジタル土方なんて言われるんだよw

759 :デフォルトの名無しさん:2012/08/31(金) 02:59:14.66
計算機科学という分野で知るべき、あるいは教えるべき内容は非常に広範で
その一部をカバーするために使用される言語としてJavaが使われることもあるというだけ
標準的な手続き型言語+オブジェクト指向プログラミングぐらいまでは対応できる

その他、低水準な部分にはCだろうし、計算理論ではSchemeかもしれないし
情報理論とか形式言語論ならプログラミング言語すら使わず数式ばっかりかもしれない

アルゴリズム論とかであればスクリプト言語が適当かもしれない
実際Python/Rubyを入門に使ってる大学もあるそうだし

760 :デフォルトの名無しさん:2012/08/31(金) 03:05:10.80
まあ、それが大学だが、
社会に出て必要になる知識は少ない。

761 :デフォルトの名無しさん:2012/08/31(金) 03:09:49.47
omt入れて欲しいな。
プログラミングだけじゃ、何かを作るとこまで行かない。

762 :デフォルトの名無しさん:2012/08/31(金) 03:12:34.49
>>759
自然言語処理やAIで研究室に所属する前の夏あたりでpython/rubyの自習でもするもんだよ
制御はoctave/matlabで論文の数式ガリガリやってたはず
並列処理みたく計算量が多いとこはcしかやってなかったな
javaで実装するのは面倒で、どっちかっていうとc++の方が好まれるじゃないかな
どんどんc++の新しい機能を覚えて、c++が大好きになって、最後には大嫌いになる

smalltalkerやhaskellerの教授が居たら、そこの研究室に行く方が幸せだと思うよ
転職時においしい業界に移れる可能性は高まるから

>>760
そのレスからは底辺臭しかしない

763 :デフォルトの名無しさん:2012/08/31(金) 03:12:52.74
大学は企業でお金を稼ぐための勉強をする所じゃないからな
企業側としても、金にならない研究がしたいならウチに来ないで大学に残れと思ってる
大卒を欲しいとすれば、研究する過程で身につけた問題解決能力だろう
専門学校でもそれをうまく教育出来れば良いが、もともと地頭が悪い学生だから上手くいかないんだろうな
大学行って当たり前みたいな風潮が間違ってる。殆どのしょぼい大卒は下っ端になるだけだから
専門学校に行けば良い

764 :デフォルトの名無しさん:2012/08/31(金) 03:19:57.85
馬鹿だな。学生時代の知人の一部は社会的に大成功するんだよ!仲良くなっておかないと
それにIT業界から脱出するなら学歴はあった方が良いからね
専門学校程度のカリキュラムなら大学へ行く方がまだマシだよ
学のない馬鹿な経営者に騙されずに済むからね

765 :uy:2012/08/31(金) 03:21:35.57
逆に考えると専門にはいれば
論外的に才能ない奴はすぐ挫折していなくなるから、かえってそのほうが早期にIT脱出できて幸せなんじゃね
大学だと才能なくてもやめずに4年間ズルズルとやり続けて産廃になってる可能性もある
才能がないなら早めにリターンしたほうが絶対良い

766 :デフォルトの名無しさん:2012/08/31(金) 03:27:52.89
日本の雇用流動性では脱出出来ない。出来ても大幅グレードダウン。
学歴があった方がいいのは事実だが、いまどき大卒なんて普通すぎて意味なし

767 :デフォルトの名無しさん:2012/08/31(金) 03:32:43.03
>>765
最終学歴で初任給が決まるし世の中の面接官の多くは今でも学歴で人を見るんじゃないかな
それに情報科へ興味もなく入った奴は、さっさと別の業界へ行くからね。
出版とか気球乗りとか工員、外食、パチ屋とか
ああそうだ、上流工程ならパワーポイントだけで済むらしいよ!

768 :デフォルトの名無しさん:2012/08/31(金) 03:40:36.56
>>766
web系なんてコンテンツビジネスばかりだし、
今後は専門的な記事を書くライターが増えるんじゃないか?

769 :デフォルトの名無しさん:2012/08/31(金) 03:42:10.63
物書きねぇ…

770 :デフォルトの名無しさん:2012/08/31(金) 03:42:43.86
>>765
論外までくらいなら進学する前に気付けよ。

771 :デフォルトの名無しさん:2012/08/31(金) 03:45:21.51
てか、プログラマ()を目指さないような学科なら、
教員免許や公務員試験、TOEICの対策ぐらい簡単に出来そうなもんだけどね

772 :uy:2012/08/31(金) 03:53:29.61
>>770
内情を知らないのか
1年で3分の1は消えるらしいよ
俺のいってたところはもっとだったが

773 :デフォルトの名無しさん:2012/08/31(金) 03:55:19.53
>>772
なるほど。専門だとこういうのが育つのか。

774 :デフォルトの名無しさん:2012/08/31(金) 03:58:05.13
>>772
プログラマになって1年で3分の1が辞めたってことか?いい気味だ。ザマーミロ
俺の知ってる連中はhello worldぐらいしか書けなかったぞw
GUI?ライブラリ?何それオイシイの?HSPスゲーだってさ。お前ら死ねよ

775 :デフォルトの名無しさん:2012/08/31(金) 07:08:09.84
2chラーの公務員率は異常

776 :デフォルトの名無しさん:2012/08/31(金) 18:29:48.32
あのなぁ〜言っとくけどRubyは国産じゃねーからっ。
モルモン産だからっ!

777 :デフォルトの名無しさん:2012/08/31(金) 18:57:58.54
BOOOOOOOOOOOOT!!!!!!

778 :デフォルトの名無しさん:2012/08/31(金) 20:51:24.05
JavaとかC#のお仕事楽しくない!


779 :デフォルトの名無しさん:2012/08/31(金) 20:55:50.16
世の中の多くは大卒だが
やつらはよく辞める。

780 :デフォルトの名無しさん:2012/08/31(金) 21:05:17.64
他にもっと楽で稼げる選択を知っているからな
公務員やカリスマ塾講師()でもやった方がマシな人生だ
ソフトウェア開発なんてGNUに魂捧げたマヌケだけで十分だよ

781 :デフォルトの名無しさん:2012/08/31(金) 23:02:07.77
Rubyとモルモン教ってどのくらいつながっているの?

782 :デフォルトの名無しさん:2012/08/31(金) 23:17:56.90
楽に稼げるカリスマを肯定したいのか否定したいのか
はっきりしろよ

783 :デフォルトの名無しさん:2012/08/31(金) 23:52:41.44
>>763
大学教授は頭いいことは認めるけどあいつら研究本当にやってんの?
大学によると思うんだけど。
狭い大学はどうなってんだ?
しかも50〜60の爺じゃん。プロジェクト的なことできんのか?

784 :デフォルトの名無しさん:2012/08/31(金) 23:59:36.96
CINIIなりIEEEなり覗けば、何やってるか分かるよ

785 :デフォルトの名無しさん:2012/09/01(土) 00:33:04.10
common lispで当時最先端の音声認識のプログラムを書いたような苫米地が、
キナ臭い洗脳と自己啓発紛いのアホな書籍で金を稼ぎ、
小学校時代からプログラミングを初めてredhatからスカウトされる
OSSのコミッタでも企業で大腸菌の研究をするのがIT業界だよ
多くのスーパーメディアクリエイターもIT業界には進みやしない
頭の良い奴らはジジイに使われて才能なんて生かせないと気付いている

786 :デフォルトの名無しさん:2012/09/01(土) 01:08:52.84
>>783
学生が半年で済むようなことを何年もかけてやってる教授も居るよ
学生のアイディアを片っ端から壺職人みたく破すだけの教授もね!
研究室の教授が何しているかは就活時にかなり重要だよ.
もっとも大学によっては既に研究室の選びようすらないけどね
そういうときは人生を諦めて一番楽に卒業できる研究室を選ぶと良いよ
意識の高い学生()は入学時から教授の品定めと専攻分野をさっさと決めとけ

787 :デフォルトの名無しさん:2012/09/01(土) 01:36:22.62
viを二分割できるハッカー()やら、cをよく理解してない教授が「PGは高卒の仕事」とか言ったり、
プログラムを書いたことのない教授がコンパイラの講義を教えていたり、
右とか左の学生がGCの名前すら知らなかったりとにかくカオスw
そして、連中をありがたく雇用する大企業(なぜか中小企業ほど人を選ぶ)
コミュ力だとw

788 :デフォルトの名無しさん:2012/09/01(土) 02:35:27.42
プログラミングに使う時間なんて本当は少しで良いんだよ
oreillyやspringerから金になるものだけ選んだ方が方がマシ
確率微分方程式が金になるよ。半年から二年ほど片手間に勉強すれば十分だ
どこかのアホ経営者が書いた本なんてのは読むだけ金と時間の無駄

789 :デフォルトの名無しさん:2012/09/01(土) 03:48:54.86
基本的に大学生は動的言語()なんて触っちゃダメだ.javaやjavascriptなんて最悪.
悪いことは言わないから関数型に全力を注いで金融関係のところ目指せ

790 :デフォルトの名無しさん:2012/09/01(土) 05:15:54.05
>>789
僕ちゃんはます、動的型付け言語が何かからお勉強しましょうねー。

791 :デフォルトの名無しさん:2012/09/01(土) 05:53:36.82
>>790
奴隷商乙w
最近の関数型はREPLが付いてるし動的言語なんて学んだらダメだよ

792 :デフォルトの名無しさん:2012/09/01(土) 06:41:33.16
Javaは静的なんだぜ?

793 :デフォルトの名無しさん:2012/09/01(土) 06:57:17.21
インタプリタと勘違いしちゃったのかな。

794 :デフォルトの名無しさん:2012/09/01(土) 07:38:12.30
rubyの話題が出てくると、関数型orJavaScriptの話題になる率が高い


そいつはただの奴隷だ

31 :デフォルトの名無しさん:2012/09/01(土) 04:11:42.21
関数型で金融系を目指すのが一番だって.それかRかmatlab弄って生産管理あたり
動的言語なんて触っていたら底辺コーダーのまま
アホ経営者に人生を使い潰されて終わちゃうよw



34 :デフォルトの名無しさん:2012/09/01(土) 04:13:59.82
>>31
発想が奴隷だな

かわいそうになってきた

35 :デフォルトの名無しさん:2012/09/01(土) 04:14:43.56
奴隷wwwwww


795 :デフォルトの名無しさん:2012/09/01(土) 08:02:50.51
kwatchのブログで恥晒してたバカ学生思い出した

796 :デフォルトの名無しさん:2012/09/01(土) 12:10:40.65
ゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ゴミゴミゴミゴミゴミwwwwwwwwwwww


うぇwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

797 :デフォルトの名無しさん:2012/09/01(土) 18:27:33.32
>>795
世の中には、2chだからヤれることあるだろ
それを最近のバカ共はtwitterやfacebookでやらかすんだw

798 :uy:2012/09/01(土) 19:38:52.71
バカなんじゃね?

799 :デフォルトの名無しさん:2012/09/01(土) 19:49:36.88
ちんこなんてのもいたな

800 :デフォルトの名無しさん:2012/09/01(土) 19:49:51.05
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< オマエモナー
 (    )  \_________
 | | |
 (__)_)

801 :デフォルトの名無しさん:2012/09/01(土) 19:50:43.18
コテ名乗らないだけマシだよw

802 :デフォルトの名無しさん:2012/09/02(日) 08:46:28.01
ttp://twitter.com/akiradeveloper
なんかあんまり変わってないよーな

803 :デフォルトの名無しさん:2012/09/02(日) 11:26:36.10
ゴミ

804 :デフォルトの名無しさん:2012/09/02(日) 21:58:53.32
関数型とかワンマンプログラマーのオナニー開発でしか使わねぇよ。

関数型を使えるとか言ってる時点で現実を直視できないニートプログラマ。


805 :デフォルトの名無しさん:2012/09/02(日) 22:13:30.99
jane streetみたいな美味しい仕事したい

>>804
底辺土方乙

806 :デフォルトの名無しさん:2012/09/02(日) 22:14:49.09
これなんだよな。関数型が糞で在り続ける理由は。

807 :デフォルトの名無しさん:2012/09/02(日) 22:17:33.72
>>806
javaやPHPがIT土方と言われる所以すら知らないで作業している底辺土方ってイメージw

808 :デフォルトの名無しさん:2012/09/02(日) 22:19:04.33
javaやPHPの仕事が圧倒的に多いからだろ

809 :デフォルトの名無しさん:2012/09/02(日) 22:22:21.12
誰にでも出来る外食チェーンだよw

810 :デフォルトの名無しさん:2012/09/02(日) 22:23:44.05
誰にでも出来るって言語を設計する上で最低条件だろ
誰にでも出来ない言語があるとしたらそれは間違いなく糞言語

811 :デフォルトの名無しさん:2012/09/02(日) 22:24:19.20
あと外食チェーンが誰にでも出来るとか脳みそ腐った奴とは会話が成立しない気がする

812 :デフォルトの名無しさん:2012/09/02(日) 22:25:00.55
君本物の馬鹿でしょw
誰にでもできる仕事だってことだよ
関数が重宝される理由ぐらい調べてみるといいよ
これから生きるには土方にも教養ぐらい必要だろうから

813 :デフォルトの名無しさん:2012/09/02(日) 22:25:09.71
まあ関数型脳の奴が腐ってるのは昔から周知の事実だけども

814 :デフォルトの名無しさん:2012/09/02(日) 22:25:42.53
関数型言語が重宝されてる仕事なんてないよ

815 :デフォルトの名無しさん:2012/09/02(日) 22:26:35.63
動的言語とwebアプリしかしらない底辺コーダーって、頭の中がお花畑で幸せそうだな

816 :デフォルトの名無しさん:2012/09/02(日) 22:26:35.66
誰にでも出来る仕事なんて無数にあるけど、それは関数型言語でやってもいいわけだよね
なんで関数型言語でやらないの。それが糞言語だからでしょ。真っ先に重宝されてないじゃん。

817 :デフォルトの名無しさん:2012/09/02(日) 22:29:17.88
cでシステムを書く必要があったから、そのままc++,javaと発展しただけだよ
過去の名残りだってことぐらい分かれよw
大手も必要な処理は関数型プログラマを集めて活用してるもんだよ

818 :デフォルトの名無しさん:2012/09/02(日) 22:30:36.35
なんでそのまま発展するわけ?それで問題が全くなかったからだと考えないわけ?
関数型プログラマを集めるってなんだよwポール・グレアムに毒されすぎだろw

819 :デフォルトの名無しさん:2012/09/02(日) 22:32:12.13
関数型の歴史はC並に古いし、別に無視してきたわけじゃないよ
ちょっと検証すれば論外だって気づくわけ、まともな脳みそを持ってれば

820 :デフォルトの名無しさん:2012/09/02(日) 22:33:04.08
でたよw
common lispが関数型だと思っている馬鹿がw
あれは、rubyと同じ動的言語だよ

821 :デフォルトの名無しさん:2012/09/02(日) 22:35:25.05
関数型は根本的に潔癖というか、一部の信者が騒ぎ立てるに十分な異常性を持ってる
だから手続き型言語に持ってきて俗化した関数型言語の機能はみんな使うしそれで十分なわけ
というか関数型言語とかもはや存在価値ないよ

822 :デフォルトの名無しさん:2012/09/02(日) 22:38:46.44
一部の人は関数型言語を有効につかっていそうだけど、ここにいる人は結局副作用バリバリの手続き型風で書いてそうw
結局設計。

823 :デフォルトの名無しさん:2012/09/02(日) 22:43:41.14
>>822
設計を失敗しないって、屏風の虎を出させるようなもんだろw
そうでなくとも文法と型推論だけでも恩恵あるでしょ

824 :デフォルトの名無しさん:2012/09/02(日) 22:48:50.70
関数型言語クラスタの皆さんは手続き型言語を馬鹿にする暇があるなら
その最強言語でキラーアプリを作った方がよろしいかと^^

825 :デフォルトの名無しさん:2012/09/02(日) 22:51:37.35
手続き型しか使えない土人ばかりで世間に普及しないんだよ^^
javaやPHPしか使えない奴らは、そもそも学習障害者しかいないから
さっさと障害者手帳でも貰ってIT業界から去れよw

826 :デフォルトの名無しさん:2012/09/02(日) 22:54:56.16
マイノリティがぶうぶう言ってる間にも
普及してる言語は情報もライブラリもアプリもコミュニティも拡大して差は広がるばかり

827 :デフォルトの名無しさん:2012/09/02(日) 22:56:35.54
関数型言語は理解だけじゃなくデバックもしにくい
デバックが必要な人が悪いってか?

828 :デフォルトの名無しさん:2012/09/02(日) 22:56:51.82
なんというか世界の狭い人だなあ。


829 :デフォルトの名無しさん:2012/09/02(日) 22:57:56.18
特に重要でもない雑事を片付ける道具が増え続けてるだけだよ
一部の重要な仕事をするのに動的言語やc++は明らかに向いていない
そして、動的言語とjavaには延々と馬鹿が募りぶくぶくと同じことを延々と繰り返す
これが土方や外食チェーン以外の何者なんだ?

830 :デフォルトの名無しさん:2012/09/02(日) 22:59:13.44
関数型でやるべき一部の重要なことって何?(笑)

831 :デフォルトの名無しさん:2012/09/02(日) 23:00:05.72
知らないよ。使ったことないし

832 :デフォルトの名無しさん:2012/09/02(日) 23:00:37.91
すげー!

833 :デフォルトの名無しさん:2012/09/02(日) 23:01:31.07
多分、金融計算や並列処理、複雑なパーサー書いたりだよ

834 :デフォルトの名無しさん:2012/09/02(日) 23:01:58.49
たぶん・・・

835 :デフォルトの名無しさん:2012/09/02(日) 23:04:15.58
だいたい、javaやPHPしか使ったことないしね

836 :デフォルトの名無しさん:2012/09/02(日) 23:06:23.46
関数型言語信者の知能はヤバいくらい低いな(笑)

837 :デフォルトの名無しさん:2012/09/02(日) 23:08:53.81
OOPはGCなしでもできる
関数型はGCも必要だし型推論も必要だ
型推論がないと動的言語という別のジャンルになってしまう
だから関数型は普及しない

838 :デフォルトの名無しさん:2012/09/02(日) 23:09:05.62
何もしらない豚って、生きてるだけで毎日が幸せそうでいいな

839 :デフォルトの名無しさん:2012/09/02(日) 23:15:26.84
>>838
そう思うなら、君がなれば?

840 :デフォルトの名無しさん:2012/09/02(日) 23:20:40.56
>>839
世の中には可逆的な反応と不可逆的な反応があるんだよ
そして、君は知ってしまった.今日から毎日が哀れなソクラテスだよw

841 :デフォルトの名無しさん:2012/09/02(日) 23:23:03.57
関数型言語が糞ってだけの常識的な話じゃん
一人話を逸らそうとしてる意味不明なやつはいるけど

842 :デフォルトの名無しさん:2012/09/02(日) 23:24:29.82
まったく幸せな豚って奴は人の話すら聞かないらしいな

843 :デフォルトの名無しさん:2012/09/02(日) 23:26:28.99
関数型言語は馬鹿にされて然るべきだろ。少しは現実を受け入れろよ
ちょっと馬鹿にされると、「こいつは関数型言語の高尚さを分かってないなあ」みたいなウンコみたいな態度を取るだろ
分かってないのはお前だから。関数型言語でないと出来ない仕事なんてないし
情報も少なく、学習コストが高く、コミュニティも小規模で排他的な救いようのない言語をあえて使う必要性がまるでないわけ
「ドストエフスキー読んでます(ドヤ」みたいな趣味自慢のくせに、なぜか社会での有用性を主張し始めるからキチガイになる
そのくせなんの具体例も挙げない究極の馬鹿

844 :デフォルトの名無しさん:2012/09/02(日) 23:28:05.78
>>843
豚ってのは関数型コミュニティが作り上げたソフトウェアをググる知能もないらしいなw
うん、PHPとjavaは良い言語だ。毎日が幸せだ。よかったね!

845 :デフォルトの名無しさん:2012/09/02(日) 23:30:22.56
結局、関数型言語でどういうシステムを開発するのか
知らないんだよな?
どこかで見聞きした話をつなぎ合わせただけなんだろう


846 :デフォルトの名無しさん:2012/09/02(日) 23:30:35.63
そりゃアプリケーションで言えば手続き型言語の方が圧倒的だから
豚豚と連呼することしか出来ないわな
というか、関数型言語全体よりJava一つの方が実績は大きいだろ

847 :デフォルトの名無しさん:2012/09/02(日) 23:31:05.02
>>845
どうせポール・グレアムの受け売りだろwww

848 :デフォルトの名無しさん:2012/09/02(日) 23:32:24.56
うるせー、お前らは豚だ豚豚
俺こそが最先端にいるんだ!

849 :デフォルトの名無しさん:2012/09/02(日) 23:34:18.55
NTTやIIJあたりのサイトから活用事例みてこいよ、豚共.

850 :デフォルトの名無しさん:2012/09/02(日) 23:34:38.15
型付けとパラダイムは直交だろ……
Erlangみたいにオーソドックスな関数型言語でありながら
動的型付けってのは成立する

851 :デフォルトの名無しさん:2012/09/02(日) 23:35:05.26
そんでErlangなて誰も使ってないじゃんw

852 :デフォルトの名無しさん:2012/09/02(日) 23:36:06.03
カスみたいな話はこっちで

LLにおける関数型プログラミング
http://toro.2ch.net/test/read.cgi/tech/1345123070/

853 :デフォルトの名無しさん:2012/09/02(日) 23:36:31.77
お前の豚小屋で使われてないないだけだろ.俺の豚小屋でも使われてないけど

854 :デフォルトの名無しさん:2012/09/02(日) 23:50:28.14
あれ、マ板の臭いがするw

855 :デフォルトの名無しさん:2012/09/03(月) 00:07:43.14
そりゃ、まいった

856 :デフォルトの名無しさん:2012/09/03(月) 00:18:03.67
>>850
ErlangとかClojureって
パラダイムと直交するはずの並行処理を、関数型の特徴であるかのように見せているよね

857 :デフォルトの名無しさん:2012/09/03(月) 00:33:56.11
>>823
失敗でなくてしてないということ。

858 :デフォルトの名無しさん:2012/09/03(月) 04:01:58.23
外食って美味しいよね

859 :uy:2012/09/03(月) 06:26:47.99
なにこの、俺の要約したまとめレスを待っているかのような待機状態のスレ

つまり関数型とはOOよりも出来ることを減らして少ない規則の中でプログラムを組むって事
バカには無理
バカじゃなくても無意味

860 :デフォルトの名無しさん:2012/09/03(月) 06:32:40.47
uyには無理

861 :デフォルトの名無しさん:2012/09/03(月) 07:21:34.83
関数型言語使いは、手続き型も関数型も書けて、その上で関数型を選んでる。
ドカタは手続き型しか使えない。選択してるわけじゃない。馬鹿なだけ。

862 :デフォルトの名無しさん:2012/09/03(月) 07:45:09.03
副作用のある部分と無い部分を分離できることを
型レベルで保証するのがHaskellのメリットだけど、
普段から副作用をコード全体にまき散らしてる人には不便に思えるだろう

863 :デフォルトの名無しさん:2012/09/03(月) 07:53:15.92
>>861
ooは書けないんだw

864 :デフォルトの名無しさん:2012/09/03(月) 07:57:29.11
>>863
OOは手続き型や関数型とレイヤーが違う
関数型でOOできる

865 :デフォルトの名無しさん:2012/09/03(月) 08:40:31.88
なんだ設計じゃなくて文法レベルか。設計にあったものでいいよ。って、設計できない人か。

866 :デフォルトの名無しさん:2012/09/03(月) 10:43:13.98
>>851
使われているということと日本のプロジェクトで採用されているかは少し違う

867 :デフォルトの名無しさん:2012/09/03(月) 11:19:08.83
関数型は自分から自由度さげてるんだよね

868 :デフォルトの名無しさん:2012/09/03(月) 11:27:02.38
ねえ、関数型言語がなんで流行らないのかの議論を何年続けるつもりなの?
終わってんだよ、関数型言語は。

869 :デフォルトの名無しさん:2012/09/03(月) 11:27:33.44
というか、始まってすらいない。

870 :デフォルトの名無しさん:2012/09/03(月) 11:30:16.53
関数型言語を流行らせたければ、手続き型言語みたいにすることだなw

871 :デフォルトの名無しさん:2012/09/03(月) 11:36:19.37
副作用は便利すぎるから、基本的にあるものとみなさないとプログラミングなんてやってられないのよ。これが常識

872 :デフォルトの名無しさん:2012/09/03(月) 11:37:50.81
「俺の常識」ですねわかります

873 :デフォルトの名無しさん:2012/09/03(月) 11:38:11.92
>>867
アセンブラ以外で自由度を下げてない言語なんてあるの? 規約を設けることで保証をして品質を上げてるわけでしょ。

874 :デフォルトの名無しさん:2012/09/03(月) 11:38:49.37
間違いなく一般論だろ

875 :デフォルトの名無しさん:2012/09/03(月) 11:39:49.68
>>873
ユーザビリティを考えて設計してるか、関数型の幻想に囚われて設計してるかの違いはある

876 :デフォルトの名無しさん:2012/09/03(月) 11:41:11.08
>>875
ユーザビリティって画面設計しかしないタイプか。

877 :デフォルトの名無しさん:2012/09/03(月) 11:41:10.94
関数型言語の特徴というものが、そもそもプログラミングにおけるデメリットリストみたいなものw

878 :デフォルトの名無しさん:2012/09/03(月) 11:42:21.01
>>871
副作用のある部分は単体テストしにくいから別にするだろう。

879 :デフォルトの名無しさん:2012/09/03(月) 11:43:54.97
>>876
???関数型言語が不便すぎるのは画面設計が失敗してるからなの?

880 :デフォルトの名無しさん:2012/09/03(月) 11:53:35.67
自由度を上げたいやつは、まず特定のパラダイムに定住するのをやめろ

881 :デフォルトの名無しさん:2012/09/03(月) 11:57:47.14
>>879
>>875に訊いてくれ。


882 :デフォルトの名無しさん:2012/09/03(月) 12:02:49.51
ユーザビリティ => 画面設計
の理由を聞いてるんじゃないの?

883 :デフォルトの名無しさん:2012/09/03(月) 12:18:39.45
>>876はユーザビリティって画面設計とかUIのこと言ってんの? って訊いてるんだよ。


884 :デフォルトの名無しさん:2012/09/03(月) 12:24:36.40
言葉の意味も知らないで、ググった結果を
自分なりに要約して書いているだけだから、
虐めないで!

885 :デフォルトの名無しさん:2012/09/03(月) 12:32:09.57
>>883
>>876は質問じゃなく自己完結してるように見えるけど

886 :デフォルトの名無しさん:2012/09/03(月) 12:58:10.70
うんk同士の対談だぞ胸熱だなおいw
ttp://rikunabi-next.yahoo.co.jp/tech/docs/ct_s03600.jsp?p=002154&vos=dyterssc000000000000

887 :デフォルトの名無しさん:2012/09/03(月) 12:59:02.23
脱税アフロと対談とか胸厚

888 :デフォルトの名無しさん:2012/09/03(月) 13:05:58.85
これはキモいな
2匹とも死ねとつねづね思ってるぞ俺は

889 :デフォルトの名無しさん:2012/09/03(月) 13:33:26.47
ゴミ

890 :デフォルトの名無しさん:2012/09/03(月) 17:41:59.85
>茂木 ハッカーのような友達に聞くと、プログラマの開発効率は人によって10倍、あるいは100倍の差が出るとか。それは本当ですか?
アハモジャの知人ってだけで、自称スーパーハカー()のワナビ臭がするw
大学教授が言うプログラムが、ほとんどhello wolrd止まりだしな

891 :デフォルトの名無しさん:2012/09/03(月) 17:49:24.53
は?

892 :デフォルトの名無しさん:2012/09/03(月) 17:52:46.59
刺身にタンポポをのせる仕事なら10倍100倍の差がつくのは考えにくいけど
プログラミングで10倍100倍あるいはそれ以上の差がつくのはサルでもわかるだろうに

893 :デフォルトの名無しさん:2012/09/03(月) 18:11:09.14
生産性のことじゃないよ
茂木の友達のこといってんだよw

894 :デフォルトの名無しさん:2012/09/03(月) 18:16:15.37
Super Hello Worldは通常のHello Worldの10倍の威力があるのです。

895 :デフォルトの名無しさん:2012/09/03(月) 18:25:20.43
スーパーハローワールドは関数型じゃないとかけない

896 :デフォルトの名無しさん:2012/09/03(月) 18:31:39.67
わたしのhello worldは108式まであります

897 :デフォルトの名無しさん:2012/09/03(月) 18:38:19.55
Super Mario World?

898 :デフォルトの名無しさん:2012/09/03(月) 19:30:27.10
よく見たらスレタイからrubyが外れているw

899 :デフォルトの名無しさん:2012/09/03(月) 21:04:31.93
rubyの位置にjsがきた
ほんとにLLとしてjs使ってる奴がいるのか甚だ疑問だ

900 :デフォルトの名無しさん:2012/09/03(月) 21:11:15.55
          /        ,       ::| |ヽ\    \
          /      /  / |     ::/| :| `、`、    ヽ
           /      /  / |    ::/ |::|  `、',ヽ  ',  ',         r┐ r┐ヾ>
         ,'   i   | :/'  | |  ::/ i:|    ', i ヽ  i  ',.       | | lニ コ
        ,'   |     ! :,'   i||  ::/  ||     || `、 | | |        | レ! _| |.
         |   |    |`i'-,,, | | ::/   |     |  ', | | |        ヽ/(___メ>
          |   |    ||.|  `二=,,__,,,     ,,,__... -!´ト, | |         ,、
      .  | .   i    | |  //:::C,       7::c\ ||ヘ.| |        ((
          |   .|     | /  {::::::::::::}         {::::::::}`、 ,' .| i         ))
        | /´'|     |     ヽ::::::ノ       ヾ::ノ  .|   |        ((
        | {  |    |::::::::         ,    .... |   |         ))
        |  \',   '','''''   __       ::::::::: |   i           ((
        |   .:::',   ',   /    ` ー --、    |   |            ))
        /  .:::::::', ::  ',  /          }    /   |         ((
       / ...:::::::::::'、::.   ',、(          /  ,イ|:: :   |          `
     /  ..:::::::::::/'`、:::.. ',`'' - ,,____ノ,,ィ::´:::i ',:::|:: |         / 7
`-ー-´/ /:::::::::/    `、、 ',   /`、\:::::::::::::::,':::::::,' |::||:: |       ┌‐' 'ー┐ト、
 ̄ ̄/  ./:::::,-{       \ `、、   /  \::::::::,'::::::/  .|:i'|: |        7 /_7 / 」__〉
  /   //  \       \ ヽ/    }::::/:::::/   | |:|        〈_/ヽ_/


901 :デフォルトの名無しさん:2012/09/03(月) 21:14:04.60
・グローバル変数はどこからでもアクセスできて便利
・Gotoはどこへでも制御を移せて便利
・手続き型はどこでも副作用を書けて便利(NEW!!)

902 :デフォルトの名無しさん:2012/09/03(月) 22:41:25.34
関数型って遅くならない?
動的に関数作り出したり

903 :デフォルトの名無しさん:2012/09/03(月) 23:06:19.83
もしそうだとしたら普通のメソッドよりもstaticメソッドの方が速くならない?

904 :デフォルトの名無しさん:2012/09/03(月) 23:56:06.98
>>903
そんなことはない

905 :デフォルトの名無しさん:2012/09/04(火) 00:20:46.34
つまり関数型は遅くならない

906 :デフォルトの名無しさん:2012/09/04(火) 00:55:54.53
単純に処理系に投資されてきたリソース量が違うから
原理的には大差ないバイナリを吐ける部分でも
最適化で負ける可能性はある

あとは勝手に遅延評価されてたとか、加算したいだけなのに
多倍長整数も考慮したジェネリックな+になってたとか、
リストの中身がボックス化されてたとか

907 :デフォルトの名無しさん:2012/09/04(火) 02:09:26.37
>>905
遅くなるでしょ?
高階関数とか

908 :デフォルトの名無しさん:2012/09/04(火) 05:19:55.98
遅いだろ
どうやっても動的に処理を入れ替える関数は
バイナリにしたってインタプリタに近い

909 :デフォルトの名無しさん:2012/09/04(火) 05:24:31.58
実際のところ本当の意味で「動的に関数を作り出す」のが最適(もしくは必須)な処理ってどういうのがあるの?
ほとんどの場合は一度作ったら内部的に使いまわせるような気がするのだけれど

910 :デフォルトの名無しさん:2012/09/04(火) 05:36:56.80
プログラム起動後に外部からの入力によって処理を選択させたい時

911 :デフォルトの名無しさん:2012/09/04(火) 05:45:58.63
漸化式を頭使わずに書きたいときとか

912 :uy:2012/09/04(火) 06:10:45.02

n = 2

def f n
if n == 2
  p 3
else
  p 4
end
end
f n


# ↓

r =
if n == 2
  ->{ p 3 }
else
  ->{ p 4 }
end

r.call



913 :デフォルトの名無しさん:2012/09/04(火) 06:30:18.39
>>910 >>コテ
それって結局処理内容そのものは固定じゃね?
内部的には静的と変わらないと思うのだけれど
(コテのも多分内部的には定数化されてんのじゃないのかね
Rubyの内部仕様は知らんが少なくともそうできる処理だ)

>>911
うーん…解くにしても
その式自体が欲しいなら動的関数というより数式処理の範疇だし
答えが欲しいなら固定でいいような気がすんだよな…
まあ、数式処理の過程で簡易的に使うのは楽かも知れん

914 :デフォルトの名無しさん:2012/09/04(火) 06:53:11.33
ジェネレーターとかで役立つんじゃないの

915 :デフォルトの名無しさん:2012/09/04(火) 07:29:08.16
高階関数 f(g, x) = g(x) は メソッド呼び出し f(x) = x.g() と速さ同じじゃね?
C++みたいに仮想関数じゃない場合は別として。

916 :デフォルトの名無しさん:2012/09/04(火) 07:40:57.76
関数を作り出す関数はインスタンスを作り出すコンストラクタと同じ

917 :デフォルトの名無しさん:2012/09/04(火) 07:51:33.88
>>909
実際のところ本当の意味で「動的にインスタンスを作り出す」のが最適(もしくは必須)な処理ってどういうのがあるの?
ほとんどの場合は一度作ったら内部的に使いまわせるような気がするのだけれど


wwwwwwww

918 :デフォルトの名無しさん:2012/09/04(火) 08:00:09.60
関数を作り出す関数っていっても、
ほとんどは既存の関数を新規のスコープ(バインディング?コンテキスト?)と
結びつけて返すだけじゃね?
rubyのevalみたいなので実際に関数そのものを作り出す場合はちょっと別だけど

919 :デフォルトの名無しさん:2012/09/04(火) 08:24:01.97
Javaドカタはラムダを使った事が無いので
ラムダとevalの区別がつかないww

920 :デフォルトの名無しさん:2012/09/04(火) 08:59:15.26
なくても何とかなるけど
あったほうが良いってだけ
使えない奴は死ね

921 :デフォルトの名無しさん:2012/09/04(火) 09:52:45.05
Javaにもラムダあるっつーの

922 :デフォルトの名無しさん:2012/09/04(火) 09:54:09.49
というか、ラムダは最高!Javaは糞!みたいな話しか出来ないのかよ
Javaとかこのスレに何の関係もない勝ち組言語だってことを受け入れろ

923 :デフォルトの名無しさん:2012/09/04(火) 10:05:30.78
OOPには、関数は寿命がないがオブジェクトは寿命がある、という前提があって、
寿命がないものはクラスに入れて寿命があるものは変数に入れるようになったようだ。
寿命を持つラムダを認めると、クラスという入れ物の価値が下がってしまう。

924 :uy:2012/09/04(火) 10:17:01.21
全ての関数はオブジェクトとして扱いインスタンス化すべき

925 :デフォルトの名無しさん:2012/09/04(火) 10:38:06.14
>>923
そんな前提あったっけ?
例えばjavaだとnoclassgcを指定しないとクラスもGC対象だけど

926 :デフォルトの名無しさん:2012/09/04(火) 11:19:13.98
>>925
クラス自体を対象にするのではなくClass型のstatic変数を作って対象にすればいい
C++ならそうなるわな

927 :uy:2012/09/04(火) 11:50:14.23
継承がカスって認識がひろまって
ミックスイン主流になれば
次にクラスではミックスインの性能生かしきれないことに気づいて
そしてようやくラムダ主流になると思う
10年後くらい

928 :デフォルトの名無しさん:2012/09/04(火) 21:50:43.50
継承でやるべきことを
ミックスインでやるなよw

別のものだからな。

929 :uy:2012/09/04(火) 22:53:48.60
なんで初心者って

ああもういいや

930 :uy:2012/09/04(火) 22:55:26.12
スタティック変数と同じように
「間違ったもの」としてこれから消滅していく概念が継承

異論は認めない

931 :デフォルトの名無しさん:2012/09/04(火) 23:01:56.42
継承と同じように
「間違ったもの」としてこれから消滅していく概念がミックスイン

uyはトレイトをまだ知らない

932 :デフォルトの名無しさん:2012/09/04(火) 23:05:28.08
それ2度目だな


イラスト界隈を見ていると、
プログラミングの世界にあるオブジェクト指向(笑)よりも程度の低い
幼稚な一般常識が広まっている
上手い下手とかじゃない、無意味な誰得概念のオンパレード
アナログだからみな気づかない
この世界は幼稚すぎる、そう感じてしまう俺は生きる時代を間違えてる
世界はまだ成長できるよ
俺はこの時代に生まれ、このスペックを持った事は不幸かもしれない
世界の幼稚さに毎日呆れるばかりだ

933 :uy:2012/09/04(火) 23:30:47.07
いつのまにか絵の分野でも世界一位を獲得してた
周り下手すぎる
ふと見返せば周りの絵のどれと比べでも俺様のほうがうまくなってたわ
ほんと難易度の低いゲームだな
ちょっとシフトしただけでもう1位か
あっけなさすぎる

934 :デフォルトの名無しさん:2012/09/04(火) 23:50:00.59
言語仕様で消えたものなんて無いからw

935 :デフォルトの名無しさん:2012/09/05(水) 01:21:32.87
共通項は客とトレンドに合わせなければ仕事と需要がないってだけだよ

936 :uy:2012/09/05(水) 06:02:43.68
積極的に使われなくなったもの
goto
DEFINEマクロ
スタティック変数
ユーザー定義のグローバル変数
素でポインタを触る行為
クラス
継承
JAVA

937 :デフォルトの名無しさん:2012/09/05(水) 06:05:35.32
自社開発できない底辺はそうだね

938 :デフォルトの名無しさん:2012/09/05(水) 07:40:40.97
継承でできること

・ポリモーフィズム:ダックタイピングできるなら不要

・実装の再利用:機能追加のために継承関係などというツリー構造を入れるのは
コードを密結合させる悪手


結論:LLに継承は不要

939 :デフォルトの名無しさん:2012/09/05(水) 07:44:33.04
ooわかってないのに無理に継承使うなよ。

940 :デフォルトの名無しさん:2012/09/05(水) 08:26:58.48
最近の言語マクロないから自作した

941 :デフォルトの名無しさん:2012/09/05(水) 08:28:20.53
継承つかわないと必要メモリ量ふえるよ

942 :デフォルトの名無しさん:2012/09/05(水) 08:45:13.95
メモリ管理指向が許されるのはC++までだよね

943 :デフォルトの名無しさん:2012/09/05(水) 09:03:34.94
メモリ使用量的には継承もミックスインもそんなかわらんだろ

944 :デフォルトの名無しさん:2012/09/05(水) 12:17:39.12
Java屋さんに聞きたいんですが詳細設計書くの面倒じゃないですか?

945 :デフォルトの名無しさん:2012/09/05(水) 12:18:24.55
コードスタックのメモリ使用量なんて問題になるわけもない

946 :デフォルトの名無しさん:2012/09/05(水) 13:06:14.64
継承が使えないと無駄に工数が増えるし
ライブラリとして用意されているクラスを
使いづらくなる

947 :デフォルトの名無しさん:2012/09/05(水) 13:40:16.33
>>936
インスタンスっていうのは今でも使うのかい?

948 :uy:2012/09/05(水) 15:29:07.55
なんのインスタンスだよ

全てのオブジェクトのインスタンスのことであれば
俺様最高設計の中では、動的にインスタンスを一切生成しない構想もあったが
まだやってない

949 :デフォルトの名無しさん:2012/09/05(水) 15:39:45.27
インスタンスの無いコーヒーなんて

950 :デフォルトの名無しさん:2012/09/05(水) 16:20:31.30
>>948
クラス・継承が積極的に使われなくなったとすると、インスタンスは
どうですか、という質問は至極当たり前のものだろ。
実際には使われているらしいことはすぐ分かるが。

951 :950:2012/09/05(水) 16:21:47.23
積極的には使われなくなった だね


952 :uy:2012/09/05(水) 18:26:42.85
そんな内容のないレスかいてて暇なの?うらやましいわ

953 :デフォルトの名無しさん:2012/09/05(水) 20:42:41.02
継承が無くてもtraitsかmixinがあれば十分だろ

継承使ってるとか言ってる馬鹿はどうせ
コード上でバージョン管理やってるだけだろ

954 :デフォルトの名無しさん:2012/09/05(水) 20:50:24.78
そうでっか

955 :デフォルトの名無しさん:2012/09/05(水) 21:13:36.37
>>953
そんな思いつきで大丈夫なの?

956 :デフォルトの名無しさん:2012/09/05(水) 21:45:48.43
コード上でバージョン管理やってる例のアイツはこのスレになんていて欲しくない

957 :デフォルトの名無しさん:2012/09/05(水) 21:57:52.60
例のアイツ = >>953

958 :デフォルトの名無しさん:2012/09/05(水) 22:20:58.00
関数名の最後にExをつけるアレってバージョン管理?

959 :デフォルトの名無しさん:2012/09/05(水) 22:22:26.79
単に名前考えるのが面倒なだけ

960 :デフォルトの名無しさん:2012/09/05(水) 22:31:01.83
>>957
ドカタ長くやってると読解力も衰えるのか?

961 :デフォルトの名無しさん:2012/09/06(木) 00:22:06.94
>>958
cmp,fn,gc,buf的なサフィックスでしょ

962 :デフォルトの名無しさん:2012/09/06(木) 01:30:31.09
トレイトをミックスインみたいな古代文明の遺物と同列にすなーッ
と、隣のスモールトーカーが申しております。
ちなみにスカラのトレイトは名前だけで正体はただのミックスインなんだそうです。

963 :デフォルトの名無しさん:2012/09/06(木) 07:07:49.63
>>944
内部向けにはクラス図からコード生成するし、客向けにはjavadocで済ます。複雑なとこは別途なんきUMLで補足する。
Javaが一番楽だと思うけど。他の言語でもっと楽な方法あるの?

964 :デフォルトの名無しさん:2012/09/06(木) 07:30:32.53
>>962
RubyのmixinとSmalltalkのtraitsとScalaのtraitsとPerlのrolesの違いをくわしく

965 :デフォルトの名無しさん:2012/09/06(木) 07:44:31.58
mixin: 制限付き多重継承
trait: メソッド衝突検知機能付きコピペ

966 :デフォルトの名無しさん:2012/09/06(木) 08:05:40.04
衝突した時の動作って決まってないの?
同じ名前なのに言語によって仕様違うとか困るんだけど

967 :デフォルトの名無しさん:2012/09/06(木) 08:41:23.98
Traitsはフラット化がミソなわけだから、コンパイル時に衝突検知してそのまま
普通にコンパイルが通らないというのが正しい仕様だろう。

968 :uy:2012/09/06(木) 09:03:19.49
module A ; def ff ; p 1 end end
module B ; def ffff ; p 1 end end

class Module
def uy inc
self.included_modules.+([ self ]).map do | m |
b = inc.instance_methods.&(m.instance_methods)
return p("juuhuku_is_#{inc}_#{m}_#{b}") if b.empty?.!
end
self.class_eval { include inc }
end
end
class C
def ff ; end
uy A
uy B
end
module D
def ffff ; end
uy A
uy B
end

module B ; def ff ; p 1 end ; end
class E
uy A
uy B
end

重複チェックってたったこれだけだろ
何でMatzはこの程度も作れないの?初心者か

969 :デフォルトの名無しさん:2012/09/06(木) 11:35:41.07
日本のサーバーOSシェア、なんとWindows Serverが73.7%と圧倒 ※ただしNT/2000/2003が半数以上
http://engawa.2ch.net/test/read.cgi/poverty/1346894513/

970 :デフォルトの名無しさん:2012/09/06(木) 13:31:01.14
>>969
「Windows Server 2012」の新機能とは?
http://news.mynavi.jp/articles/2012/09/06/winsserver2012/
日本マイクロソフトは9月5日、新サーバOS「Windows Server 2012」の提供開始を発表したが、
同社はそれにともなう記者説明会を開催し、新機能の概要を説明した。
同社はWindows Server 2012を「New Cloud OS」と位置づけており、

971 :デフォルトの名無しさん:2012/09/06(木) 16:49:45.33
>>968
フラット化っていうくらいだからインクルード順に依存する実装じゃだめだろう。
あとモジュール変数の衝突とかどうするの? ステートレス・トレイトはもう古いよ?

972 :uy:2012/09/06(木) 18:44:04.67
どこをどう読めば順序に依存してんの
モジュール変数って用語はrubyにない@@つきのクラス変数ってことなら参照可だろrubyは
重複チェックは余裕で実装可

973 :デフォルトの名無しさん:2012/09/06(木) 20:00:46.33
>>968
ヒント:教祖様はcプログラマ

974 :uy:2012/09/06(木) 21:23:03.41
最初にself.includedで書こうとしたら無理だったから
そこで勘違いしたような気しかしない

975 :デフォルトの名無しさん:2012/09/06(木) 22:01:35.11
メソッドが後から追加されたときはどうするの?

976 :uy:2012/09/06(木) 22:23:43.46
そういうのは全部情報辿れるから
つかインクルードした側の一覧がないか
だったらメソッドuy内でなんかの変数にでも追加して情報もたせりゃいいだけ
rubyソースコード内だけでトレイト実装するための条件はクリアされてる

977 :デフォルトの名無しさん:2012/09/06(木) 22:34:30.95
情報もってどうするの?
モジュールにメソッドを追加する手段なんて山程あるのに、
それに全部対処できるの?

978 :uy:2012/09/06(木) 22:45:07.39
さっきから質問頭悪すぎ
最重要コードはあげたんだからあとは自分で考えれば

979 :デフォルトの名無しさん:2012/09/06(木) 22:45:56.84
例えば動的にmethod_missingのアルゴリズムを変化させて、
モジュールが応じるメソッドを任意のタイミングで変化させてる場合なんてどうする?

980 :デフォルトの名無しさん:2012/09/06(木) 22:47:04.99
にげたw

981 :デフォルトの名無しさん:2012/09/06(木) 23:05:26.03
システムに近い部分に手を入れる場合、それをどうやって実装するかより、
それがどんな影響を及ぼすかを考えるのが最重要なんですけどね

982 :uy:2012/09/06(木) 23:09:51.40
無条件でオーバーライドするのは元々のruby仕様
んでチェックしてエラーだす方法は提示したよね
これでわからないならもうあほだ

983 :uy:2012/09/06(木) 23:14:53.01
>>981
トレイトがないみたいな流れだからとりあえずの実装をしただけ
俺様的にエラーだしてプログラム停止ってrubyっぽくないと思うからトレイト入るとしても
他言語のトレイトにはならないだろと思う

984 :デフォルトの名無しさん:2012/09/06(木) 23:15:42.94
>>982
馬鹿には全部説明しないと理解できないのかな
おまえが提示した方法じゃrubyのメソッド重複チェックはできないと言ってるんだよ

985 :uy:2012/09/06(木) 23:21:26.45
そっか
ruby学んでください

986 :デフォルトの名無しさん:2012/09/06(木) 23:22:31.22
トレイトってダイヤモンド継承したとき
トレイトAとトレイトBで同じメソッドがあった時どうなるの?

ダイヤモンド継承で同じメソッドがあるときでもエラーにならずに
コンテキストに応じてトレイトAとトレイトBを見分けて、
適切なメソッドを仕組みを備えているのはVBだけなのかな?

987 :デフォルトの名無しさん:2012/09/06(木) 23:24:48.60
ダイヤモンド継承w

988 :デフォルトの名無しさん:2012/09/06(木) 23:25:14.71
>>979
意味的にはmethod_missingは任意のメソッドと衝突してるから
method_missing実装してたら即エラーにすべきじゃない?

989 :デフォルトの名無しさん:2012/09/06(木) 23:36:58.45
変なコードを書いた時の動作は、未定義でいいだろ?

990 :デフォルトの名無しさん:2012/09/06(木) 23:51:08.13
書いたらどうなるか定義するより、
何も書かなければ何も影響しないことを保証するのが先

991 :デフォルトの名無しさん:2012/09/07(金) 00:18:48.58
ひとつ確実な事はSmalltalkはゴミすぎて
traitsがあってもRubyの1/10も普及しないということだ

992 :デフォルトの名無しさん:2012/09/07(金) 01:50:17.22
>>991

>>762


993 :デフォルトの名無しさん:2012/09/07(金) 06:44:14.38
次スレ
【Perl,Python,PHP】LL バトルロワイヤル 26【JS,Ruby】
http://toro.2ch.net/test/read.cgi/tech/1346967719/

994 :デフォルトの名無しさん:2012/09/07(金) 08:58:02.41
>>991
Smalltalkがゴミなのは異論ないけど
('70年代の「メッセージだけで言語とかつくれんじゃね?」的一発ネタを引っ張りすぎだろ…)、
そのゴミのゆうに百倍以上の人間がすでに関わっていながら、
そのゴミをアイデアや文化の源泉として未だ凌駕できないばかりか、
そのゴミから出てきたTraitsすらまともに実装できないRubyのゴミ以下の硬直っぷりを
なんとかしないといかんと思うわけだよ。

Rubyからもっと新しい開発手法や言語機能を創出しろよ。ゴミに笑われるぞ。

995 :デフォルトの名無しさん:2012/09/07(金) 09:45:14.81
Smalltalkの現実的な後継で実用化に成功したのはObjective-C

996 :デフォルトの名無しさん:2012/09/07(金) 10:02:44.14
よく使われて言語と言語設計や機能的に成功してるは完全に別

997 :uy:2012/09/07(金) 10:14:10.47
1から10まで全部作らないと理解しないとか流石に。
メソッドだろうとクラス変数だろうとuyメソッドと同じようにかけよバカ
rubyで重複チェックは作れた
そんなにトレイト欲しいなら処理系にトレイト実装されなくても重複チェック機構は作れる
自分でかけない奴が勝手に発狂してゴミ扱い
動的言語でよそにある概念引っ張ってこれないとか早々ないから

998 :デフォルトの名無しさん:2012/09/07(金) 10:21:03.30
>>995
Objective-Cみたいな中途半端の出来損ないがSmalltalkの後継とか笑える。
そもそも「実用化」ってなによ? Smalltalkエンプラで使われて久しいんだけど。
いまだに Smalltalk=アラン・ケイの暫定ダイナブック環境 とか勘違いしているとか?

999 :デフォルトの名無しさん:2012/09/07(金) 10:23:45.57
おはようw悔しくて夢にまで出てきたのかな?w

1000 :デフォルトの名無しさん:2012/09/07(金) 10:24:31.32


rubyでトレイトは実装可



バカには無理

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

248 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)