【Perl,PHP】LLバトルロワイヤル6【Ruby,Python】at TECH
【Perl,PHP】LLバトルロワイヤル6【Ruby,Python】 - 暇つぶし2ch200:デフォルトの名無しさん
09/06/24 16:07:53
これがpy脳か…

201:デフォルトの名無しさん
09/06/24 16:24:33
>>187
書き手しだい。
Pythonに限らずインデントが深くて波打ってるようなコードとかあるだろ?
そういうのは例えPythonでも読み辛いもんだよ。


202:デフォルトの名無しさん
09/06/24 16:31:47
>>201
今はそういう話じゃない。
195が、いくら読みやすくてもPythonの文法は特殊だから読みにくいという主張に対しての反論。
書き手次第とかは今は関係ない。


203:デフォルトの名無しさん
09/06/24 16:44:56
特殊って言い方は変だと思うな。
プログラミング言語全体で「特殊」なんてのはあんまり無いと思う。
単に書き方の派閥があるだけで、その中に特殊なんてのは存在しないんじゃないかな。

つーかLLスレ的にはC風の書き方のほうがむしろ異端じゃなかろうか。

204:デフォルトの名無しさん
09/06/24 17:12:33
主観の問題なので、実際にリサーチしてみないと判断は無理。
自分を中心にして、相対的に語ったところで意味はないだろう。

205:デフォルトの名無しさん
09/06/24 17:14:29
C風の書式のLL:
・Perl
・PHP
・Ruby
・JavaScript
・(Python)

C風でない書式のLL:
・(Python)


206:デフォルトの名無しさん
09/06/24 17:41:32
>>202
読みにくいじゃなくて、他の言語に比べて特別読みやすいわけじゃない、だろ。
読みやすいか読みにくいかは、その言語に精通しているかどうかが大きな肝で、
Pythonが特別読みやすい言語仕様になっているから読みやすいわけじゃない。
インデントが綺麗かどうか程度の差でしかないから、
コーティング規約に従って書かれたJavaやPHPと、
可読性は殆ど変わらん。

207:デフォルトの名無しさん
09/06/24 17:43:36
RubyのどこがC風なんだ

class SuperClass
end
class MyClass < SuperClass
    attr_reader :x
    def initialize(x)
        @x = x
    end
end
def func1
    MyClass.new 'Hello'
end
func1
puts func1

208:デフォルトの名無しさん
09/06/24 17:54:10
>>206
>読みにくいじゃなくて、他の言語に比べて特別読みやすいわけじゃない、だろ。
まず>>195を読もうぜ。
おまえの意見なんか問題にしてない。

209:デフォルトの名無しさん
09/06/24 18:44:25
>>207
キーワードがちょっと違うだけじゃん

210:デフォルトの名無しさん
09/06/24 18:45:45
じゃあpythonも十分C風ってことで

211:デフォルトの名無しさん
09/06/24 19:05:35
>>207
キーワードはAlgol風味だが、
メソッドとかの命名はC系の影響を受けてると思う
to_sとか、アンダーバー記法でギリギリ意味が取れる程度に短くする

212:デフォルトの名無しさん
09/06/24 19:42:56
pythonは制御構造を作るのに end も { } も; も必要ない。
余計なものが少なくてシンプルに見えるんだがなー。

213:デフォルトの名無しさん
09/06/24 19:56:39
だから見分けづらいんでしょ

214:デフォルトの名無しさん
09/06/24 19:59:28
慣れかもしれんがdelphi触ってたときは
begin endの嵐でうへぇって感じだった
俺的にはシンプルのがいいわ
見分けづらいとも感じない

215:デフォルトの名無しさん
09/06/24 20:58:01
俺はCやPerlの記号ごちゃごちゃ出す感じが嫌いなんだよなぁ
Rubyも書き方次第で記号ごちゃごちゃになるけど

216:デフォルトの名無しさん
09/06/24 21:27:27
PerlはOne-linerが流行るような、出来るだけ縮めてしまえっていう文化だよね。
Rubyもその流れを汲んでいる。

217:デフォルトの名無しさん
09/06/24 21:49:25
漏れの周りのPython知らなかった人もPythonの制御構造の仕組みは
解りやすいとコメントしていたな。

見分けづらい、と言う人は極少数だと思われ。

218:デフォルトの名無しさん
09/06/24 21:54:31
会社とかのコーディング規約で「ifやforのブロックはインデントして見やすく」とか
している組織だとPythonのコードは読みやすく感じるだろうな。

それにPythonだとswitchやcase文がないところからしても、「覚えやすく、見やすく、シンプルに」って
哲学みたいなのがあるんだろ。

219:デフォルトの名無しさん
09/06/24 22:11:11
pythonの制御構造に関していえば、別段、特殊でもないし、
括弧が、インデントが、begin-endがなんて、本質的な分かりにくさじゃないだろ
~です、~ゴザル、~ニャとか、そのぐらいどうでもいい違いだよ
メモリ上でオブジェクトがどうなっているかとか、どうやってソートするのかとか、
スコープや数値、配列、文字列の扱いやライブラリの利用なんかの方が遥かに謎

220:デフォルトの名無しさん
09/06/24 22:13:13
>>218
ifやforでインデントしない奴のソースなんか100人中98人までは読みたくねーよ
規約の遙か以前の問題で、またPythonのインデント強制とも次元が違いすぎる

switch~caseなんかもifの構文糖衣だし、なんか的はずれすぎてワロタ

221:デフォルトの名無しさん
09/06/24 22:35:46
>switch~caseなんかもifの構文糖衣だし、なんか的はずれすぎてワロタ

ぶっちゃけ違う。

同じと思っているならソレは>>220のレベルが極限まで低い証拠。
そういう低レベルがPythonをどーこー言うのは的外れ。

222:デフォルトの名無しさん
09/06/24 22:44:36
>>221
どう違うのを書かないと、>>221のレベル(笑)もわからんな
例えば、ifで代替できないシンプルなswitch文をあげてみるとか、
コンパイラ方面での話をしてみるとか

223:デフォルトの名無しさん
09/06/24 22:52:18
ifでswitchの振り分け真似ると、orだらけになったりするコトも

後で指導するが、明らかにアレは見づらい

224:デフォルトの名無しさん
09/06/24 22:55:11
ifとswitchは似ている様で違うだろ。

Pythonはswitchなくてもほとんど困らないが、その理由が解らない>>220
ちょっと頭が可哀想な人なんだと思う。

225:デフォルトの名無しさん
09/06/24 23:11:59
>>220が攻撃される理由が分からん。

pythonのは、OOだ!OOを使え!ルーク!って教えでしょ。
Perlは、ライブラリだ!ライブラリを使え!ルーク!って教えだし。

しかし、switchはifのシンタックスシュガーじゃないのか?
ifで代替できない場面が分からない。
見易さだけなら、ただのシンタックスシュガーだし。

226:デフォルトの名無しさん
09/06/24 23:20:20
Python教こえーな
異教徒排除が徹底しすぎ
敵がJavaだけのRuby信者より質悪いわ

227:デフォルトの名無しさん
09/06/24 23:28:07
ということにしたいのですね?

228:デフォルトの名無しさん
09/06/24 23:34:51
一応考えてみたが、switchには、if~else単独にはないラベルへのgotoも複合されている
C#みたいなものもある、とかいう点なのかな?
この場合は、switchってif~else+gotoの糖衣構文じゃん、とか言ってみたらどんな反応が
来るんだろう。やっぱり同じ反応な気もするが。

あとはコンパイラの最適化でなにかあるのかな~くらいしか思いつかないが、「違う」理由を、
純粋に勉強のためにせっかくだから誰か教えてくれないもんだろうか。気になる。

229:デフォルトの名無しさん
09/06/25 00:38:08
正露丸糖衣A

230:デフォルトの名無しさん
09/06/25 00:38:58
xがOまたはPまたはQのときは処理aと処理b
xがRまたはSのときは処理bのみ
それ以外のときは処理cを行なうってコードとか?

231:デフォルトの名無しさん
09/06/25 00:49:16
C言語だと switch と if が違うというのはわかるが、LL だとどうなんだろ?
C言語は、コンパイラやコードによっては、テーブルを引いてジャンプするコードに変換される場合があるらしいが。

232:デフォルトの名無しさん
09/06/25 00:54:14
>>230
switch( str )
{





233:デフォルトの名無しさん
09/06/25 00:59:53
Enter押してしまった・・・ orz

>>230
switch( str )
{
 case 'O':
 case 'P':
 case 'Q':
  function_a();

 case 'R':
 case 'S':
  function_b();
  break;
}

こういうのはifよりswitchのほうが楽だね

234:デフォルトの名無しさん
09/06/25 01:10:30
if s in 'OPQ': function_a()
elif s in 'RS': function_b()

235:デフォルトの名無しさん
09/06/25 01:12:21
あ、function_aの後は下へ流れるのか

236:デフォルトの名無しさん
09/06/25 01:22:22
Python には暗黙のルール、見た目から意味が推測できない記号が
少ないから、メタクラスとか駆使した一部分のコードをのぞき、Pythonに
それほど精通しなくても大体のコードは読める。

その反対は(非モダンな)Perlで、初心者どころか中級者になっても
他人のコードが読めなかったり、下手すると昔の自分の書いたコードが
読めないなんてことが起こる。

237:233
09/06/25 01:27:14
>それ以外のときは処理cを行なうってコードとか?
・・・ (´・ω・`)

switch( str )
{
 case 'O':
 case 'P':
 case 'Q':
  function_a();

 case 'R':
 case 'S':
  function_b();
  break;

 default:
  function_c();
  break;
}

もうねまふ。。。

238:デフォルトの名無しさん
09/06/25 02:11:59
>>233
if str in "OPQ":
    func_a()
if str in "OPQRS":
    func_b()


239:デフォルトの名無しさん
09/06/25 02:18:15
>>237
if str in 'OPQ':
      func_a()
if str in 'OPQRS':
      func_b()
else:
      func_c()

240:デフォルトの名無しさん
09/06/25 02:24:05
str の内容が 'RS' とかだったらどうするんだろ?

241:デフォルトの名無しさん
09/06/25 02:29:00
リスト使えばええがな

242:デフォルトの名無しさん
09/06/25 02:33:08
Pythonのinって何が起きてるんだ?
何となく分かるようで分からん。文字単位でのマッチング?

243:デフォルトの名無しさん
09/06/25 02:34:36
文字列は文字のリスト

244:デフォルトの名無しさん
09/06/25 03:13:57
URLリンク(www.python.jp)

245:デフォルトの名無しさん
09/06/25 03:19:45
俺的には K&Rが読みやすいから、GNUだなんだの見るよりは
インデントが統一されてるなら、読みやすくはあるんだろうなー
とは思う。 最終的には慣れだろうけど…

今は括弧がないとなんか読みにくい感じ。
do endもなんかなれないんだよなー

246:デフォルトの名無しさん
09/06/25 03:27:35
なんか場末のスナック的なスレだな

247:デフォルトの名無しさん
09/06/25 03:33:54
スナックに行った事が無いからワカンネ。

248:デフォルトの名無しさん
09/06/25 03:45:55
GNUスタイルとかは先頭ブレースの一行分長くなる点が好きでない
行数は可読性に直結すると思う
(だからといって、無理やり圧縮するのが良いとも思わないが)

その点、インデントベースは末尾のブレースやendも削れるのが素晴らしい
でも何となく好きになれないというワガママw どうも宙ぶらりん感がある

あとはS式みたいに、末尾に畳んじゃう記法だが・・・・編集がしずらいような
エディタの支援があればイケるか?

249:デフォルトの名無しさん
09/06/25 03:51:54
○ しづらい

250:デフォルトの名無しさん
09/06/25 03:56:25
S式は対括弧表示できるエディタ無いと苦しいね
まあ、Windows標準のメモ帳で開発しる!
なんてことが無い限り大丈夫だとは思うが

251:デフォルトの名無しさん
09/06/25 04:42:53
S式は文字数でインデントするからプロポーショナルだと崩れて読みづらい。
アメリカだとプロポーショナルでコーディングしてる人も結構いる印章だけど、彼らはどうしてるの?

252:デフォルトの名無しさん
09/06/25 08:03:14
>>240
具体的に >>233 で str の内容がRSの例を出してくれ。
とりあえず、
s = str[0]
if s in "OPQ":
  func_a()
if s in "OPQRS":
  func_b()

Python は他にも、 10 <= a && a < 20 を 10 <= a < 20 と書けたりするし、
if, elif の後に書ける条件式が強力だから switch 文が要らない。

253:230
09/06/25 09:11:22
えーと…OPQRSが文字として扱われるとは思なかった(・ω・)
それぞれ何らかの値と結び付けられてる定数のつもりだったんだけど…

254:デフォルトの名無しさん
09/06/25 09:26:55
>>253
if s in (O,P,Q):
  func_a()
if s in (O,P,Q,R,S):
  func_b()
else:
  func_c()

Pythonにswitchが無いのは、散々議論された上で必要ないと判断されたから。

255:デフォルトの名無しさん
09/06/25 11:40:07
RubyやRoRって、生産性が高いって言うけど、それは膨大な規約を丸暗記した上での話だよな。俺的には分かりづらいったらありゃしないよ。

256:デフォルトの名無しさん
09/06/25 12:00:59
人の作った物だと丸暗記になるが、作った本人は丸暗記だと思ってないだろう

257:デフォルトの名無しさん
09/06/25 12:03:59
>>255
それは、他のでも変わらん

258:デフォルトの名無しさん
09/06/25 12:49:55
caseと三項演算子があればむしろif関係いらなくない?


259:デフォルトの名無しさん
09/06/25 16:44:58
ぶっちゃけswitchの方が意味解りやすいな

260:デフォルトの名無しさん
09/06/25 18:49:20
RubyやRoRは、どうだこれだと直感的で分かりやすいだろうっていう教条的な態度が我慢ならない。設定より規約って、大量に規約を覚えれば設定が省けるに過ぎない。

261:デフォルトの名無しさん
09/06/25 19:48:21
Strutsはわかりにくいうえに傲慢な態度だからな。しかも制約が多いくせに手間は省けない。
それよりは100万倍まし。

262:デフォルトの名無しさん
09/06/25 19:51:05
Javaだとmavenの思想が好きだ。
とりあえず何も書かなくても動く。
動きを変えたいところだけ、書く。

263:デフォルトの名無しさん
09/06/25 21:22:07
>>262
それならまさにRailsの思想じゃないかと

264:デフォルトの名無しさん
09/06/26 00:35:17
Ruby on Railsを使った事ない奴は、一度使ってから批評しような、とちょっと思った
中身をいじる必要も機会も、Java APIやJavaのframe workと同様に無いわけだしなw
もちろん、上書きは自由だし可能だしなあ

265:デフォルトの名無しさん
09/06/26 00:40:22
だから、結局、どんなフレームワークだって、最初に使うときは、
覚えなきゃならない事が沢山あるって事に違いはない。
フレームワークどころか、多機能な道具は、皆、
使った事が無ければ覚える事が多いってだけだ。
あとは、その道具の体系化の仕方が、
使おうとする個人に合っているかどうかというだけの事だ。
極めて、普遍的で当たり前の事であって、
わざわざ、キーボードを打つ手間を掛ける価値のない事だ。

266:デフォルトの名無しさん
09/06/26 00:49:47
>>265は、
> 使おうとする個人に合っているかどうかというだけ
が、普遍的で当たり前でキーボードを打つ手間を掛ける(、ましてやサーバ準備して
実行環境を整えるなんて!)価値のない事と言い切るが、それは本当にそうなのか。

足りていれば問題ないが、足りなくなったときにそれでは足るまい(←自己撞着)
まあ何でもいいが、それなりに使って評価してる人間がいるときに使わない人間の
評価なんて糞だと思うな。

267:デフォルトの名無しさん
09/06/26 01:07:49
>>261
そんな君にはWicketが向いている

268:デフォルトの名無しさん
09/06/26 03:10:55
>>265
Railsはあまたあるフレームワークの中でも暗黙の了解が半端なく多い。少ないコードで組めるっていうのは、それに頼ってるだけ。

269:デフォルトの名無しさん
09/06/26 03:20:55
まあ、言語自体が覚えること多過ぎな言語とか
標準ライブラリも拡張ライブラリも全部予約語扱いで予約語一覧だけで何ページにも渡る言語とか
そーゆーのもあるけどな

270:デフォルトの名無しさん
09/06/26 03:25:30
そんなことより、Erlanの話しようぜ

271:デフォルトの名無しさん
09/06/26 04:18:25
もしかして:Erlang

272:デフォルトの名無しさん
09/06/26 11:52:06
Erlang の話をする位なら Scala の話をしようぜ

273:デフォルトの名無しさん
09/06/26 11:55:42
今更ながら Python は良い言語かもしれないと思えて来た。
上の方のレスで、気持ち悪いと書いてしまってすまんかった。

274:デフォルトの名無しさん
09/06/26 12:33:21
>>272
ちょっと触ってみてるけど、
現時点では良いやら悪いやら分からん言語、という感想

狙いは合ってると思う
次に注目される言語が何かは分からんが、たぶんマルチパラダイムだろうし、
静的型付けの利点を残したまま記述量を減らすなら型推論は妥当
C#とかもその方向ではある

ただXMLリテラルは個人的に疑問。XMLは言語レベルで密結合させるほど絶対的なものか?
あと、背反しがちなオブジェクト指向と関数型を調和させようとして
言語が複雑奇怪になりかけてる(?)のも気になる。まあ仕方ない感はあるけど

275:デフォルトの名無しさん
09/06/26 14:42:21
>>274
>あと、背反しがちなオブジェクト指向と関数型を調和させようとして

そうなの?なぜ背反になるのかだれか教えて。

276:デフォルトの名無しさん
09/06/26 14:43:32
>>274
難解な表現はやめてもうちょっと簡単にいって。
じゃないとこのスレでは立ち入り禁止します。

277:デフォルトの名無しさん
09/06/26 15:09:12
おいおい、なんのためのスレだよ

278:デフォルトの名無しさん
09/06/26 15:36:40
Pythonにブロックスコープ無いけど、これは利点なの?欠点なの?
Rubyにも無いみたい。

279:デフォルトの名無しさん
09/06/26 15:44:14
グローバル変数さえ判り易ければいいと思うが、どうなんだろ
スコープ無しはプログラミングしたことないわ

280:デフォルトの名無しさん
09/06/26 16:11:37
ブロックスコープに頼って長々とメソッド書くんじゃない、ってことじゃないかな。
Ruby のブロック(は他の言語のブロックと違うけど)には、ブロックローカルが
あるけどね。

281:デフォルトの名無しさん
09/06/26 16:15:32
>>275
自分は >>274 じゃないが、
関数型だと変数は一度設定したら、書き換えない物であるのに対して、
オブジェクト指向だと、変数はドンドン書き換える物だから、
相容れないという事では?

282:デフォルトの名無しさん
09/06/26 16:32:36
>>280
ブロックスコープもそうだが
ローカル関数 (メソッドではない) に頼ってもメソッドは長くなる。
そういう書き方が嫌なのはOOへの拘りが強いせいでもあるんじゃないか。

283:デフォルトの名無しさん
09/06/26 17:04:21
でも拘るならスコープを狭い範囲に留めてさせてほしいなぁ。
その関数(やらメソッド)でしか使わない処理を、その関数(ry と同じ層に
おくのはなんかイヤらしい感じ。


284:デフォルトの名無しさん
09/06/26 17:06:08
JavaScriptにもブロックスコープがないのは盲点。

285:デフォルトの名無しさん
09/06/26 17:10:14
ブロックスコープの意味が未だに判らない。
for や while の中だけで有効な変数を作りたいってこと?
>>283 の言ってる、関数でしか使わない変数って、Pythonでも関数の中の
ローカル変数になるよね?

286:デフォルトの名無しさん
09/06/26 17:18:37
for や while の中、じゃなくて、
ブロックはブロックなんだけど。

for や while じゃない、ただ単にブロックだけのブロックも
あるわけで。

287:デフォルトの名無しさん
09/06/26 17:38:16
>>286
Pythonには無いよね>ブロックだけのスコープ

まぁ、関数より小さいスコープ作るよりも、関数自体を
小さくする方が良いんじゃないかな。

288:デフォルトの名無しさん
09/06/26 18:19:01
>>281
>関数型だと変数は一度設定したら、書き換えない物であるのに対して、

そんなことはない。関数型言語のうちで、そういうのもあるけど、たいがいのはそこまで厳しくない。
Lisp, Scheme, OCaml, ...
Haskellみたいなほうが少数派じゃね?

289:デフォルトの名無しさん
09/06/26 18:40:51
>>287
サブクラスを作るよりも、クラスの階層構造を小さくする方が良い
って思ったことはないのか?

290:デフォルトの名無しさん
09/06/26 18:43:01
>>278
>Pythonにブロックスコープ無いけど、これは利点なの?欠点なの?
>Rubyにも無いみたい。

一般的に、インタプリタではないと思う。これがあるのはコンパイル型言語の特徴じゃないかな。

もしインタプリタでブロックスコープを実現しようとすると、ブロックに入るたびに
新しい変数テーブルを用意し、ブロックから抜けるとそれを破棄しないといけない。
さすがにこれは、インタプリタでは性能がでない。

コンパイル型であればこれはコンパイル時に行なわれるから、実行時のペナルティはなしですむ。

インタプリタではあきらめろっつーことだな。ブロックスコープは、あったほうがうれしいけど、なくてもそうは困らない機能だから。

291:デフォルトの名無しさん
09/06/26 19:34:01
the requested operation has failed とエラーが出てapacheとphpの連携が取れない
システムファイルを変更すね前はapacheの起動はうまくいったのに、何をやっても
上のエラーが出てくる、誰か助けて~~~~~~~~!

292:デフォルトの名無しさん
09/06/26 19:43:07
>>285
変数だけじゃなくて、関数内関数も定義したいってこと。


293:デフォルトの名無しさん
09/06/26 19:50:39
>>291
まずはログファイルを探して読んでみよう

294:デフォルトの名無しさん
09/06/26 21:20:59
やっぱりブロックスコープがどうのこうの言ってるのが意味わからん。
たとえば、Perlではほぼできてる、ってこと?

#!/usr/bin/perl

my $a = 'a';
my $sub = sub(){ print "page\n"; };
{
 my $a = 'b';
 my $sub = sub(){ print "hoge\n"; };
 print $a . "\n";
 $sub->();
}
print $a . "\n";
$sub->();


295:デフォルトの名無しさん
09/06/26 22:31:08
本題からはずれるけど Perl で $a は使わないほうがいいよ

296:デフォルトの名無しさん
09/06/26 22:36:05
そう言えば、C++で昔 forのルール変わったよね。

for (int i = 0; ~) の i のスコープがfor文内になった。


297:デフォルトの名無しさん
09/06/26 22:41:04
>295
確か一部の組み込み関数とかで $a と $b を使うんだっけ?

298:デフォルトの名無しさん
09/06/26 23:00:52
>>292
少なくとも Python なら関数内関数作れるよ。
decorator なんて関数の中の関数の中で関数を作ったりする。

299:デフォルトの名無しさん
09/06/26 23:04:47
perlのブロックは変数の共有にも使えたりする。
今はさすがにオブジェクト指向で書くけどね。

set(12);
print get();
exit;

{
my $common;

sub set{
my ($value) = @_;
$common = $value;
}
sub get{
return $common;
}
}

300:デフォルトの名無しさん
09/06/26 23:08:33
関数内関数がやりたいだけならブロックにスコープ必要ないんでは
for文とかforeach文のブロックにスコープがあるのはいいような気がしないでもないけど
ブロックにスコープがあることの必要性がよく分からぬ

301:デフォルトの名無しさん
09/06/26 23:35:44
my $fizzbuzz;
{
my @a = qw(FizzBuzz - - Fizz - Buzz Fizz - - Fizz Buzz - Fizz - -);
$fizzbuzz = sub {……};
}
今はさすがにオブジェクト指向で書くけどねw

302:デフォルトの名無しさん
09/06/27 00:02:18
>>288
余り詳しくないけど……。
Lisp, Scheme は、一般的に広い意味で関数型言語と言われているけど、
本当の関数型言語(純粋関数型言語)ではないと聞いたと思う。
OCaml は、 ML の方言にオブジェクト指向機能を追加した言語で、
純粋な関数型言語ではなさそう。

303:デフォルトの名無しさん
09/06/27 00:05:06
流石にFizzBuzz問題にOOPは使わないなw
やろうと思えば、ジェネレータ使ったりするかも知れないがw

304:デフォルトの名無しさん
09/06/27 00:13:22
>302
OOPでも状態を変更するとは限らないから、やはり
OOPと関数型が相いれないとは言えないよ
例えばフィールドへの代入もコンストラクタでしか行わないとかいくらでもやりようはある

305:デフォルトの名無しさん
09/06/27 00:21:01
>>302
そんなことこのスレの住人のほとんどが知ってることだと思うけど
何が言いたいの?

306:デフォルトの名無しさん
09/06/27 00:24:09
>>304
静的な関数型言語だと
OOPは関数型によくある型システムの利点の一部を削り取ってしまう

307:デフォルトの名無しさん
09/06/27 00:31:50
>>305
そんなに突っかからなくてもいいじゃないか。
うゎーん(泣)

308:デフォルトの名無しさん
09/06/27 00:44:21
ブロックスコープは当然有効な機能だわ。その点、Perlは実にいい。

309:デフォルトの名無しさん
09/06/27 01:51:20
>>300
必要か否かでいってたら、たいていの便利なものは無くてもなんとかなるになっちゃうよ。
可読性を損なわないなら便利なものは使いたいな。


310:デフォルトの名無しさん
09/06/28 20:59:42
誰か、HSPの存在価値を教えてくれ。
あれもLL?DSLではあるみたいだが(どっちかというと、ゲーム特化(BASIC風))

311:デフォルトの名無しさん
09/06/28 21:01:08
HSPはエントリーされていないのですれ違いデス。

312:デフォルトの名無しさん
09/06/28 21:10:38
価値はそれこそ個人の価値観の問題だろう
DSLだという見解には同意する
小規模なゲーム・グラフィカルなアプリの作成に特化している

ここで話題に上るような、いわゆるLLではないと思う

313:デフォルトの名無しさん
09/06/28 23:44:47
>>309
>必要か否かでいってたら、たいていの便利なものは無くてもなんとかなるになっちゃうよ。

うん、そうだよ。それでいいじゃん。
ブロックスコープは、あれば便利だけど、なくてすごく困るほどのものでもない。
すくなくともインタプリタにはペナルティが大きそうだから向かないと思う。

>可読性を損なわないなら便利なものは使いたいな。

便利でもペナルティが大きければ導入されない。
便利さのかげでなにも犠牲にならないのならいいけど、犠牲になるものがあるなら
あとはトレードオフでしょ。


314:デフォルトの名無しさん
09/06/29 01:25:09
ちゃんと計算されてる? ペナルティとか

315:デフォルトの名無しさん
09/06/29 05:45:18
>>313
だから>>309が言ってるのは、必要か否かなんていう切り口で語ったら
ブロックスコープだろうがそれ以外のものだろうが、
大概のものは同じ結論しか出てこない、だから「ブロックスコープを」決め打ちで語りたきゃ
もっと踏み込んだ切り口を何か出さないと、ってことでは。

316:デフォルトの名無しさん
09/06/29 12:40:32
すみませんが教えてください。

下記のコードの3行目と5行目が何をしているのかわかりません。

特に3行目。。。

なぜrefで判定する必要があるのかもわからないので
詳しい方教えて下さい。


if(exists $form_data{$name} ) {
if(ref $form_data{$name} ) {
push @{ $form_data{$name} } , $value;
  } else {
$form_data{$name} = [$form_data{$name} } , $value ];
  }
else {
$form_data{$name} = $value;
}




317:デフォルトの名無しさん
09/06/29 13:03:49
>>313
>便利でもペナルティが大きければ導入されない。
ところが、Perlにはあって、それでああいう
パフォーマンスがでているのだが。
ペナルティとかおおげさにいうほどのことは
ないんでは。


318:デフォルトの名無しさん
09/06/29 13:06:05
>>316
つ 配列のリファレンス、デリファレンス


319:デフォルトの名無しさん
09/06/29 13:28:44
>>317
Perlはmyやlocalで変数宣言をしているじゃないか。
Rubyとかだとそれがないから、ブロックスコープを実現しようとすると、
ブロックごとにチェックをいれないといけない。
じゃあ変数宣言のないRubyがウンコなんじゃないかということなら、否定はしない。


320:デフォルトの名無しさん
09/06/29 14:01:58
HSPは米国国防省の省内統制システムへの採用が内定してるらしいし
Rubyと同じパターンで「欧米で評価」→「日本で再評価」みたいな予感はする。

321:デフォルトの名無しさん
09/06/29 19:08:34
>>319
そもそも、変数宣言がなかったら、
ブロックスコープはどのように
表現すればいいの?


322:デフォルトの名無しさん
09/06/29 19:30:37
>>321
ブロックスコープは、無名関数をその場で1回だけ呼ぶのと同じ

323:デフォルトの名無しさん
09/06/29 20:52:50
変数宣言させることで、汚いコードを書けないように制約を受けるわけで、それは凄く楽だわ。PHPとかJavaScriptとか関数ベースのスコープの言語と比べると、そう思う。

324:デフォルトの名無しさん
09/06/29 21:19:11
>>321
必要に応じて変数名の前か後ろにスコープを記述すればいいんじゃない?

325:デフォルトの名無しさん
09/06/29 21:40:22
>>324
よくわからんので擬似コードでも書いてみればいいじゃない

326:デフォルトの名無しさん
09/06/29 21:48:02
>>316
まず、$form_data{$name} に配列のリファレンスを入れたいようだ、っていうのはわかるよね。
んで、その配列に$valueを追加する、っていう処理だとおもう。
そのさい、配列のリファレンスならデリファレンスする必要があるし、ただの配列なら単純にリスト
で追加してからリファレンスとして格納。

んで、5行目のこれ
> $form_data{$name} = [$form_data{$name} } , $value ];
typoってないか?

そして上記前提を覆す8行目
$form_data{$name} = $value;
このカオス。$valueは何者よw

結論から言うと、このコードは読めなくていいよ。 おれは読めないwww
おれが勘違いしてるのかな。そうだといいな。

327:326
09/06/29 21:53:40
うん。やっぱり勘違いしてた。
最初に値(単純にスカラー期待)が与えられたときは、普通にスカラー。
もいちど飛んできたときは、配列のリファレンスとして格納。それだけだね。
どうせなら最初から配列のリファレンスにするよね、っていう固定観念があった。

328:デフォルトの名無しさん
09/06/29 22:43:18
>>325
擬似っつーかPowerShellだけど
> $hoge = 100
> & { $hoge = 111; "global: $global:hoge local: $hoge" }
global: 100 local: 111

みたいな感じ
まあブロックの中にまたブロックを~みたいな話になると別の方法になるけども

329:デフォルトの名無しさん
09/06/30 01:41:54
>>325
どうでもいいけどその言い回しおもしろいな

330:デフォルトの名無しさん
09/06/30 05:17:51
Rubyは、変数への代入で宣言も一緒にされるようなもんだっけ…
グローバルというかブロックの外に変数があるとそれを使い、ないとブロック内でのローカルになる。
たまにハマるんだよなー。

↓こういうの

10.times do |x|
i = x
end
puts i

unko.rb:4: undefined local variable or method `i' for main:Object (NameError)

331:デフォルトの名無しさん
09/06/30 06:37:41
>330
その場合、timesより前に i = nil でも i = 0 でも良いから代入が要るんよね
何回かやると慣れるがw

332:デフォルトの名無しさん
09/07/01 17:08:23
>>331
宣言だけじゃ駄目なんだっけ?

333:デフォルトの名無しさん
09/07/01 18:31:14
Rubyに変数宣言文は無いよ
最初の代入が宣言の代わりになるから、スコープ入る前に何か値を入れればスコープがそこに決まる

334:デフォルトの名無しさん
09/07/01 18:34:03
代入が無ければメソッド呼び出しと区別できない
というか宣言に相当するような構文が無い。代入が宣言を兼ねるというか

335:デフォルトの名無しさん
09/07/01 18:36:47
同じ変数名で局所化することはできるの?ブロックの外でiを使って、ブロックに入って、別のiを使うっていう。

336:デフォルトの名無しさん
09/07/01 18:40:14
不安に思ったら関数のはじめあたりで初期化してやればいいだけ

337:デフォルトの名無しさん
09/07/01 19:57:20
>335
変数名被るほど長いメソッドにせず、素直にprivateメソッド作る

338:デフォルトの名無しさん
09/07/01 20:21:02
>>337
また後付け前提ですか

339:デフォルトの名無しさん
09/07/01 20:54:23
>338
「それぐらいしか無い」とでも解釈すれば良いじゃない
具体的な挙動は相手にお任せするのがOOP流さね

340:デフォルトの名無しさん
09/07/01 21:27:21
>>339
二行目が全く>>337etcとつながらないな
意味不明


341:デフォルトの名無しさん
09/07/01 22:09:06
>340
ん?二行目はすぐ上の行としか繋がってないよ?
同じ文章でも各自で解釈は違いうる、ってポリモーフィズムっぽいよなあ、と

342:デフォルトの名無しさん
09/07/01 22:15:53
ブロックスコープの話とOOPの話がどう結びつくのよ

343:デフォルトの名無しさん
09/07/01 22:16:58
どこともつながってないだろw

344:デフォルトの名無しさん
09/07/01 23:03:27
>>337
privateメソッドにしてそのメソッドから外に出したら、(そのオブジェクトの)他のメソッドからも呼べちゃうんじゃない?


345:ぼくのかんがえたさいきょうの
09/07/02 01:14:18
動くUMLだと思えば
そんなもんだろ

346:デフォルトの名無しさん
09/07/03 12:25:29
>>335
最新過ぎて第三者ライブラリの対応が追いついてないRuby1.9からはデフォルトでできる
一般的に使われてるRuby1.8ではそもそもできない

s = '無くしたら地球がヤバいデータ'
[1, 2, 3].each do |s|
s*10 # 適当
end
puts "#{s} は超重要だ!"

# Ruby1.8.7
3 は超重要だ!

# Ruby1.9.1
無くしたら地球がヤバいデータ は超重要だ!


Ruby1.8 のせいで地球がヤバい

347:デフォルトの名無しさん
09/07/03 12:47:36
うは。便利だけど 1.8 との互換性を考えると恐ろしい。

348:デフォルトの名無しさん
09/07/03 13:09:04
単なる変数じゃなくて、ブロックの引数であることに注意。

349:デフォルトの名無しさん
09/07/03 13:38:28
これでRuby使わない決心がついた。ありがとう。

350:デフォルトの名無しさん
09/07/03 13:40:21
似たようなのはPythonでもあるね。
x = "hoge"
y = [x for x in range(10)]
print(x)

Python 2.x なら xは9で、 3.xなら"hoge"のまま。
内包表記の中だけの名前になってる。

351:デフォルトの名無しさん
09/07/03 13:46:30
for や while を使う人がいないって言ったら Ruby 嫌がった人もいたし、人それぞれだな

352:デフォルトの名無しさん
09/07/03 13:59:02
>>346
Rubyって変数のスコープないの?
大昔に作られたLispですら変数のスコープがあるのに…
だめだめじゃん

353:デフォルトの名無しさん
09/07/03 14:12:01
は?

354:デフォルトの名無しさん
09/07/03 14:25:43
>>352
>>346を煽るのに「スコープがない」と言ってしまうような人はこのスレに来ちゃだめでちゅよ

355:デフォルトの名無しさん
09/07/03 14:29:31
>>354
> ブロックの外でiを使って、ブロックに入って、別のiを使うっていう。
スコープだろうが

356:デフォルトの名無しさん
09/07/03 15:05:25
Rubyは local や my といった予約語を使わずに、文脈上でスコープを定義する
ブロック内に変数が出現したとき、その時点で可視かどうかで

 可視  → その変数を使う(つまり、書き換える)
 不可視→ 新規変数(ブロックローカル)として定義する

という動作になってる

>>346では [1, 2, 3].each のブロック内での s は可視なので、変数を単に再利用する
これを最初から不可能にすることもできなくはなかったんだが、そうすると

out = 外部データ'
someblock do |s|
 puts out #=> undefined
end

というように、ブロック外の変数にアクセスする方法がなくなってしまう

357:デフォルトの名無しさん
09/07/03 15:23:21
メソッドの引数も、ブロックの引数も、ライブラリの名前とかも宣言するのに
変数を宣言しない理由がよくわからない

358:デフォルトの名無しさん
09/07/03 15:25:31
R++ が出来たら Ruby を認めてやるよ。

359:デフォルトの名無しさん
09/07/03 15:27:44
>>357
変数は使う場所多いからいちいち宣言するのめんどいじゃん? というような趣旨のことをどっかで聞いた覚えがある

360:デフォルトの名無しさん
09/07/03 15:30:50
変数宣言なんか導入されたら現状のRubyの利点である
「ローカル変数かインスタンスメソッドかよくわからないがとにかく返り値を返す何かであるhoge」
というのができなくなるじゃないかー

361:デフォルトの名無しさん
09/07/03 15:35:22
それ、やってるのお前だけだから。

362:デフォルトの名無しさん
09/07/03 17:31:50
>357
ライブラリ名の宣言というのがよく分からんが
メソッドやブロックの引数はRubyの場合、代入だろ?

モジュールやクラスの定義は
Module、Classのインスタンスを作成し定数に代入
さらに最後の式の結果を返す文

メソッド定義だけは少し毛色が違う気がするね
あれはProcのインスタンス作成とかしないだろうし

363:デフォルトの名無しさん
09/07/03 18:47:03
>>352
変数のスコープが無い って、言ってることがよくわからんな。
ローカル変数もインスタンス変数もクラス変数もスコープはちゃんとあるし。

ブロックがスコープを作らないってならPythonもJavascriptも一緒だし。


364:デフォルトの名無しさん
09/07/03 18:53:39
JavaScript1.7だったかからはブロックごとのスコープを持つletというのが出てきてvarの影が薄くなってる

365:デフォルトの名無しさん
09/07/03 18:54:27
Rubyの通常のブロックはスコープ作るよ
ブロック開始時の文脈でブロック内の変数の新規性をチェックしてるに過ぎない


366:デフォルトの名無しさん
09/07/03 19:03:09
うん、
class C
def initialize
hoge = 'hoge'
@block = lambda{puts hoge}
end
def run
hoge = 'MODIFIED!'
@block.call
end
end

C.new.run

は、call で実行された環境ではなく block が定義された文脈を考慮して

'hoge'

を表示する

367:デフォルトの名無しさん
09/07/03 19:05:44
本スレにもクロージャのスコープが理解できなくて延々文句垂れてた奴がいたな
そんな特殊なものでもないしちょっと調べれば分かるのに、Rubyばっかり話題になる意味がよく分からん

368:デフォルトの名無しさん
09/07/03 19:12:55
それは別の話じゃね

369:デフォルトの名無しさん
09/07/03 22:11:48
>>365
単純に、initializeとdefとは違うスコープになってて
呼び出し先が違うだけって事じゃないの?

370:デフォルトの名無しさん
09/07/05 04:29:55
>>349
遅すぎだろ。jkw


371:デフォルトの名無しさん
09/07/06 00:08:20
なー、シンプルにそれぞれの最も優れてる実例を出してくれないか?
結局大事なのは使えるかだろ?

372:デフォルトの名無しさん
09/07/06 00:37:19
URLリンク(www.google.com)

373:デフォルトの名無しさん
09/07/06 21:34:43
えっ

374:デフォルトの名無しさん
09/07/06 21:35:26
何これこわい

375:デフォルトの名無しさん
09/07/07 01:33:20
>>372 の脳内
(検索しろ!と言う。俺かっこいいべ!昔はmanだったけど今はGoogleだべ。)

376:デフォルトの名無しさん
09/07/07 07:30:19
URLリンク(www.youtube.com)

377:デフォルトの名無しさん
09/07/07 08:50:13
URLリンク(d.hatena.ne.jp)
googleに使われてるよ

378:デフォルトの名無しさん
09/07/07 09:02:34
>>377
で?

379:デフォルトの名無しさん
09/07/07 09:04:06
>>378
Pythonが一番

380:デフォルトの名無しさん
09/07/07 09:30:20
Pythonはいいけど信者はうざい。この点rubyを凌駕している。

381:デフォルトの名無しさん
09/07/07 09:32:12
信者「ではない」よ
たぶんね

382:デフォルトの名無しさん
09/07/07 09:44:18
信者は「他称」だからなw

383:デフォルトの名無しさん
09/07/07 09:48:50
傍目にウザい時点で他人が装ってる可能性が大
>>380みたいに単純な人はいいオモチャ

384:デフォルトの名無しさん
09/07/07 10:48:48
信者はうざい。はここの書き込みに言ったのではない。

385:デフォルトの名無しさん
09/07/07 12:51:34
>>380
ルビ厨のほうがひどいだろ。jk


386:デフォルトの名無しさん
09/07/07 13:15:51
どの言語信者も最近はわりと皆おとなしいだろ
弾やmatzも

387:デフォルトの名無しさん
09/07/07 13:21:28
>>384
>>379がageてるのに気づいて後出しじゃんけんですね。わかります。

388:デフォルトの名無しさん
09/07/07 14:05:45
お前に何がわかるっていうんだ!!

389:デフォルトの名無しさん
09/07/07 14:16:03
JavaってLLじゃね?

390:デフォルトの名無しさん
09/07/07 15:31:14
>>1にエントリーされていないのでスレ違いとなります

391:デフォルトの名無しさん
09/07/07 17:06:57
>>390
ダメです。

392:デフォルトの名無しさん
09/07/07 18:00:16
久し振りにラクダ本を開いた。
テキトーなページを開いたら「配列の配列」について書かれていて
for $i ループ内には

$AoA[$i] = @array; # 間違い
$AoA[$i] = [ @array ]; # 正しい

と書かれていた。

…俺は読むのをやめた。

393:デフォルトの名無しさん
09/07/07 18:46:27
>>392
それのどこに嫌要素が?
超わかりやすいだろ。


394:デフォルトの名無しさん
09/07/07 18:54:26
>>392
何が問題なん?

395:デフォルトの名無しさん
09/07/07 19:29:05
で、№1は誰なんだよ

396:デフォルトの名無しさん
09/07/07 19:33:28
お前に決まってるだろ

397:デフォルトの名無しさん
09/07/07 19:36:38
じゃあ独断と偏見でPythonって事で

398:デフォルトの名無しさん
09/07/07 20:00:10
もう俺JavaScriptでいいや

399:デフォルトの名無しさん
09/07/07 23:04:16
Python最強ですよねー


400:デフォルトの名無しさん
09/07/07 23:09:03
>>392は、以前にPerlを触ったときにはスカラーの概念やリファレンスまでは
たどり着けなかったんだと。
まあどの言語でも、一つずつ覚えてちょっとずつ進歩していけばいいと思うよ。

401:デフォルトの名無しさん
09/07/08 03:33:31
俺には393や394の感覚がわからん。400もな。
392の例はあからさまに直感的じゃないと思うよ。

402:デフォルトの名無しさん
09/07/08 03:44:53
$AoA[$i] = $@array;

403:デフォルトの名無しさん
09/07/08 04:41:20
配列のリファレンスも分からないようなPerl素人がいきなりラクダ本なんて読もうと思うのが間違い。
もっと初心者向けび本にしとけ。
というか、リファレンスとかポインタとか理解出来ない人間は職業プログラマーの素養がないので、PHPで日曜プログラマーでよい。

404:デフォルトの名無しさん
09/07/08 05:00:29
~が理解できないとかPerl上級者とかそういう話はしてないよ

405:デフォルトの名無しさん
09/07/08 05:04:00
リファレンスが解るかどうかと、392が直感的かとは別問題でしょ…
俺だってCやJavaやPythonやRubyでリファレンスなら扱えるさ
Perlのは同じ記述がコンテキストで意味変わり過ぎてちと無理だわ

406:デフォルトの名無しさん
09/07/08 05:05:55
$AoA[$i] = [ @array ]; # usually best
$AoA[$i] = \@array; # perilous; just how my() was that array?
@{ $AoA[$i] } = @array; # way too tricky for most programmers
perldscから引用

直感的ではないなどと主観で言われても、
ああ、そうですかとしか言いようが無いけどね。

407:デフォルトの名無しさん
09/07/08 05:15:50
>>402
それ、エラー出ないか?

ちなみに同じページに

$AoA[$i] = \@array;

もほぼ間違い、と書かれていた。

@arrayがループ内でmyされたものなら問題は起きないが
ループより外にスコープがあるものだった場合
\@arrayは毎回同じ配列へのリファレンスを取得してしまうから、だそうだ。

408:デフォルトの名無しさん
09/07/08 06:20:36
言語毎にまとめてみた。
上はコピーされてリファレンスが渡され、下は直接リファレンスが渡される。

Perl
$AoA[$i] = [ @array ];
$AoA[$i] = \@array;

PHP
$AoA[$i] = $array;
$AoA[$i] = &$array;

Ruby
AoA[i] = array.dup
AoA[i] = array

Python
AoA[i] = list(array)
AoA[i] = array

409:デフォルトの名無しさん
09/07/08 06:29:28
Perlの場合リファレンスとかがわかりにくいというより
コンテキストが問題を分かりにくくしてると思う

410:デフォルトの名無しさん
09/07/08 07:52:09
今回の例に限って言えば、配列(およびハッシュ)の要素にはスカラー値のみ格納できる、
っていう言語仕様を知ってるかどうかだけのことなんだろうけどな

411:デフォルトの名無しさん
09/07/08 07:56:55
配列の配列とかが直感的に思った通りに出来る言語が勝ちだな。

412:デフォルトの名無しさん
09/07/08 08:06:57
>>411
直感は個人によって違うわけだから、そんなに直感的にやりたいなら自分で言語作ればいいんじゃないかと

つプログラミング言語を作る 前橋 和弥 (著)
URLリンク(www.amazon.co.jp)

413:デフォルトの名無しさん
09/07/08 10:08:45
@hoge = (1, 2, (3, 4, 5), (6, 7, (8, 9)), 10);


414:デフォルトの名無しさん
09/07/08 10:48:19
いつ見ても、Perlの文法は糞過ぎる。
なんで未だにこれを擁護出来る人が居るのか不思議でならない。

415:デフォルトの名無しさん
09/07/08 10:54:06
糞であるが故のバッドノウハウ症候群。
そして今更捨てられることができない認知的不協和。

416:デフォルトの名無しさん
09/07/08 11:42:12
無名関数を積極的に使いたい人は
クラス・メソッドの関係にこだわらないperlの方がむしろ癖がなくて良い

417:デフォルトの名無しさん
09/07/08 11:49:27
>416
まともな関数型言語触った事無い奴が、そんな寝ぼけた事言ってるんだろうな。

418:デフォルトの名無しさん
09/07/08 11:51:04
無名関数を積極的に使うならJSが割と最適解かも

419:デフォルトの名無しさん
09/07/08 11:52:21
416 は Perl しか使っていない

420:デフォルトの名無しさん
09/07/08 12:07:54
使いまわしの出来るクラスの一つや二つ作れるようになってから(ry

421:デフォルトの名無しさん
09/07/08 12:30:21
>>418 合意

422:デフォルトの名無しさん
09/07/08 12:31:36
>>408
Javaに慣れてしまった俺としては、Rubyが一番素直に見える。
次はPython、でPHPの順かな。
Perlはやっぱり複雑怪奇だ。
配列をオブジェクトとして扱えた方が、array.lengthみたいな書き方が出来て便利だと思う。

>>418
確かに。
最初のうちは無名関数の使いどころがよくわからなかったけど、
JavaScriptを使っているうちになんとなく身についた。

423:デフォルトの名無しさん
09/07/08 12:38:37
無名関数を関数型言語で覚えた奴は、純粋な関数処理を書く。
JavaScriptで覚えた奴は、副作用大前提のプロシージャっぽいのを書く。

424:デフォルトの名無しさん
09/07/08 12:56:06
>>414
いつ見ても、Rubyの文法は糞過ぎる。
なんで未だにこれを擁護出来る人が居るのか不思議でならない。

と、何にでも適用可能だな。w



425:デフォルトの名無しさん
09/07/08 13:02:03
>>423
副作用大前提のおかげで、ジェネレータが発明されたんだぜ

426:デフォルトの名無しさん
09/07/08 13:08:20
LISPだって副作用バリバリだろ。


427:デフォルトの名無しさん
09/07/08 13:13:00
perlだけはレベルが違う

428:デフォルトの名無しさん
09/07/08 13:26:55
>>422
Java はどのへん?
C# は?

429:デフォルトの名無しさん
09/07/08 14:53:48
ラクダ本って言うのは、Perlに詳しい人が読む本。初心者が無理して読む本じゃない。

430:デフォルトの名無しさん
09/07/08 15:05:58
Javaは数値以外は基本的に参照、だからコピーのときに明示
C#は知らん

431:デフォルトの名無しさん
09/07/08 15:06:15
ダウト。ラクダ本は多言語上級者がPerl入門のために読むもの。

432:430
09/07/08 15:15:26
盛大にコンテキスト(文脈)を読み間違えたぜ…

433:デフォルトの名無しさん
09/07/08 15:59:44
結局コードも示さずに複雑怪奇やら、糞やら、呪詛を吐くしかできないのか。
だめだこりゃ。

434:デフォルトの名無しさん
09/07/08 16:01:49
>>433
そりゃほとんどの人間の悪口は脳内の言語イメージに対して言っているものだから仕方ない
そういう馬鹿がよりつかなくてよかったと思うしか

435:デフォルトの名無しさん
09/07/08 19:10:09
package MyObj;
sub new {
  my ($class) = @_;
  my $self = { 'items' => [] };
  bless $self, $class;
}
sub set {
  my ($self, $newitem) = @_;
  push @{ $self->{'items'} }, $newitem;
}
sub take {
  my ($self) = @_;
  pop @{ $self->{'items'} };
}
1;
いまPerl初心者の俺のコードが簡単に言うとこんな感じになってるんだが
Perl使い的にはどう書くんだ?

436:デフォルトの名無しさん
09/07/08 19:55:55
Perlスレで聞けばいいのに。
モダンに書くとしたら。
package MyObj;
use Moose;

has 'items' => (
    is => 'rw',
    isa => 'ArrayRef',
    default => sub { [] }
);

sub set {
    my ($self, $newitem) = @_;
    push @{ $self->items }, $newitem;
}

sub take {
    my ($self) = @_;
    return pop @{ $self->items };
}

1;

これだけ単純なら、use Mooseじゃなくてuse Mouseでも。

437:デフォルトの名無しさん
09/07/08 21:22:20
モダン(笑)
ハイソ(笑)
ハイカラ(笑)

438:デフォルトの名無しさん
09/07/08 21:47:52
ニーソ馬鹿にすんな

439:デフォルトの名無しさん
09/07/08 23:30:45
perlerの連中も、意識的にモダンに書かないと、非モダンな出来上がりになる事は
認めてるらしい。

440:デフォルトの名無しさん
09/07/08 23:56:12
perlの文を見ると吐き気がする。C++の仕様の方がカワイイぐらいだ
いい加減に間違った進化だったって、さっさと淘汰されないかな

441:デフォルトの名無しさん
09/07/09 00:04:30
Perl系の言語って、Perlそのもの以外になんかあるんだっけ?

442:436
09/07/09 00:34:14
>>439
まあ、モダンでなければ非モダンだわな。>>435そのままだし。
>>436でもAny::Mooseぐらい使えとか、no Mooseしとけとか突っ込まれそうな気がする。

>>441
直系はPHPとRuby。既に別物。

443:デフォルトの名無しさん
09/07/09 00:40:49
>441
JPerlとIronPerlがあるよ

444:デフォルトの名無しさん
09/07/09 00:47:37
PHPってPerl系なのか

445:デフォルトの名無しさん
09/07/09 00:55:53
PHPは元を辿ればPerlの派生だけど、
ポリシーの無い付け足しをしまくりでワケワカメ状態。

446:デフォルトの名無しさん
09/07/09 04:27:04
モノポリー

447:デフォルトの名無しさん
09/07/09 04:39:45
のんぽり

448:デフォルトの名無しさん
09/07/09 08:50:51
>>440
Rubyの文を見ると吐き気がする。Pythonの仕様の方がカワイイぐらいだ
いい加減に間違った進化だったって、さっさと淘汰されないかな


449:デフォルトの名無しさん
09/07/09 09:44:49
というレスを書いて「何にでも当てはめられるなw」とかご満悦の奴が時々いるけど、
オリジナルのようには的を射ていないのが大半で、ミジメな抵抗に終わる。

450:デフォルトの名無しさん
09/07/09 10:20:23
的を射

451:デフォルトの名無しさん
09/07/09 11:31:33
>>451
ATOKまじお勧め

452:デフォルトの名無しさん
09/07/09 11:33:03
ATOK は自分を指すミスまでは直してくれないんだね

453:デフォルトの名無しさん
09/07/09 12:10:45
ATOK なんかをつかうやつはばかです

454:デフォルトの名無しさん
09/07/09 12:41:12
SKKこそ正義

455:デフォルトの名無しさん
09/07/09 12:41:30
ATOK使ってみたら草生やすのが大変すぎてワロタ

456:デフォルトの名無しさん
09/07/09 13:20:05
っっっっっっっっっっっっw

457:デフォルトの名無しさん
09/07/09 19:48:51
っっwの状態でファンクションキー1回押すだけだよ

458:デフォルトの名無しさん
09/07/09 19:51:07
ファンクションキーを押さないといけないなんて
ATOK のインターネット経由の辞書もたいしたことないですね

459:デフォルトの名無しさん
09/07/09 19:54:25
つまんない

460:デフォルトの名無しさん
09/07/09 20:21:23
ッッッッッッッw

461:デフォルトの名無しさん
09/07/09 21:00:19
的を射る、であってるんだよな。不安になってきた

462:デフォルトの名無しさん
09/07/09 21:01:45
お姉ちゃんにお任せだぞっっっっっっっっっっ!!
URLリンク(d.hatena.ne.jp)

463:デフォルトの名無しさん
09/07/09 21:12:05
語源の『大学』・『中庸』にあるように、「正鵠(せいこく)を失う」という表現からきています。
この場合の正鵠は「正も鵠も、弓の的のまん中の黒星(『角川漢和中辞典』)」のことで、
射てど真ん中の黒星に当てることができたかどうか、
当たったら「得た」といい、はずれたら「失う」と表現していたのです。
矢で的を射るのは当り前としても、
必ずしも的に、まして正鵠に当たるかどうかは示していない表現が「的を射る」です。

464:デフォルトの名無しさん
09/07/09 22:51:10
なるほど。確かに的を(狙って)射るのには、当たるかどうかは関係ないわな。

しかし、話題のATOKさんでは、「まとをえる」と打って変換しようとすると
《「当を得る/的を射る」の誤用》とか、赤い字でお節介に教えてくれたりもするw

まあ結局、言葉なんて意味が通じればなんでもいいってこった。

465:デフォルトの名無しさん
09/07/09 22:52:54
>>464の「まとをえる」は、「まとをいる」って打ったとき、ね。間違えた。

466:デフォルトの名無しさん
09/07/09 22:54:17
あれ?「まとをえる」の時でいいんだ。もういいや><

467:デフォルトの名無しさん
09/07/10 17:25:42
今年のLLイベントは面白そうなのか?

468:デフォルトの名無しさん
09/07/10 17:27:34
つまり、的外れだと言えばいいんだな

469:デフォルトの名無しさん
09/07/10 21:44:38
ゲーム作るのに最適のプログラミングは?

470:デフォルトの名無しさん
09/07/10 21:46:42
C++
このスレ的には、RPGツクールに内蔵されてるRubyってことになるか。

471:デフォルトの名無しさん
09/07/10 21:47:38
じゃあRuby覚えようっと

472:デフォルトの名無しさん
09/07/10 21:52:16
URLリンク(itpro.nikkeibp.co.jp)
ググったらサポート1件3万とかふざけた金額が出たんだけどそんなムズいの?

473:デフォルトの名無しさん
09/07/10 21:53:37
2chで聞けばいいのにw

474:デフォルトの名無しさん
09/07/10 21:55:10
2chはゴミみたいな情報しかねーだろ
ってかサポートってこんなかかるのに何でプログラマは死にそうなの?

475:デフォルトの名無しさん
09/07/10 21:58:55
サポートをやれるような大企業はプログラマ以外にもたくさん人が必要で、
その人たちの給料やらなにやらを考えたらたいして金が残らんから。

476:デフォルトの名無しさん
09/07/10 22:00:51
その人たちっていらない人たちなんじゃねえの?
過労死させるような最低の企業が多い癖に不景気だし

477:デフォルトの名無しさん
09/07/10 22:07:45
>>472
基本料金などが不要な「トライアルプラン」では,1インシデント3万円で問い合わせに回答。
月額基本料金10万円の「ベーシックプラン」は2インシデントまで無料で,以降1インシデントごとに1万円。
「プレミアムプラン」は月額基本料金15万円で4インシデントまで無料。以降1インシデントごとに5000 円となる


割引になってないしww

478:デフォルトの名無しさん
09/07/10 22:09:13
素晴らしい詐欺だったのか

479:デフォルトの名無しさん
09/07/10 22:10:14
おそらく技術者は小人数
電話取り次ぎとマニュアルで解決できない問題の技術者への引継までは
派遣スタッフがやってるんだろうね
かなりいろんな段階でピンはねがあるかと


480:デフォルトの名無しさん
09/07/10 22:11:01
この会社に就職するのも悪くは無い

481:デフォルトの名無しさん
09/07/10 22:17:41
URLリンク(www.ec-one.com)
採用情報持ってきてやったぞ

482:デフォルトの名無しさん
09/07/10 23:00:17
>>481
資格で要求されている経験と、
「学歴、前職規模、業界不問、24~35歳位まで」ってのが乖離しすぎて無理ありすぎ。

483:デフォルトの名無しさん
09/07/10 23:03:33
Ruby厨はキチガイしかいないようで

484:デフォルトの名無しさん
09/07/11 11:11:41
スクリプトで生計立ててる人って・・

485:デフォルトの名無しさん
09/07/12 15:05:37
>>484
それで生計が立つならいいんじゃないか?


486:デフォルトの名無しさん
09/07/12 15:54:19
いやいいんだが、そういう奴の一人称って「ぽっくん」が多くね?
いままで5,6人のスクリプターと接してきたけど3人がそういう奴しってる。
しかも全員SOHO。やっぱ人と会話してないとアレになっていくのかなあ…

487:デフォルトの名無しさん
09/07/12 15:54:43
立たない人間が大半じゃないですかー

488:デフォルトの名無しさん
09/07/12 15:55:24
>>486
ただキチガイと当たっただけじゃね?

489:デフォルトの名無しさん
09/07/12 15:57:16
ぽっくんって何?

490:デフォルトの名無しさん
09/07/12 15:59:32
僕君?

491:デフォルトの名無しさん
09/07/12 16:18:45
おぼっちゃまくん以外でそんなの聞いたことねーよw
パチンコの影響か?

492:デフォルトの名無しさん
09/07/12 16:22:05
馬鹿にされてるんじゃねーの?

493:デフォルトの名無しさん
09/07/12 17:28:30
>>486
お前それ、奇跡みたいな確率だぞw
一般的な現象として語るとキョトンとされるだけだろうが、
初めから「嘘みたいなホントの話」として語ればウケるかも。

494:デフォルトの名無しさん
09/07/12 21:04:55
で、結局最強はどれなの?
全然バトルをロワイヤルしてないじゃん

495:デフォルトの名無しさん
09/07/12 21:08:06
隔離スレなんだから終わらせちゃ意味がないだろ

496:デフォルトの名無しさん
09/07/12 21:12:05
しかし言語ってそんな大事かね

497:デフォルトの名無しさん
09/07/12 21:18:34
大事でなければ、こんなに乱立するわけがない

498:デフォルトの名無しさん
09/07/12 21:19:38
まあ>>496は、(CPUごとに違うらしい)マシン語だけ使ってろってこった

499:デフォルトの名無しさん
09/07/12 21:34:28
えっ?

500:デフォルトの名無しさん
09/07/12 21:40:16
同系統のCPUならある程度の互換性はあるけどな
流石にPowerとかになると全然違うが

501:デフォルトの名無しさん
09/07/12 21:44:23
x86とPowerとSHは違うんじゃね?

502:デフォルトの名無しさん
09/07/12 22:02:09
このスレで(高級)言語の存在意義が問われるとは意外と言えば意外。

しかし>>496はどうとでもとれるので、本人的には、
「俺は言語なんかこだわらないぜ、なんでも書けるよフフン」
って意味で書いただけかも知れんが。

503:デフォルトの名無しさん
09/07/12 22:07:17
ruby / pythonを使う利点ってなんでしょうか?


504:デフォルトの名無しさん
09/07/12 22:07:50
ruby信者になれる

505:デフォルトの名無しさん
09/07/12 22:17:33
>>503
rubyやpythonのソースコードが読めるようになります
また、rubyやpythonを好きで使っている、頭のいい人達の
言ってることが理解しやすくなるかも知れません

506:デフォルトの名無しさん
09/07/12 22:18:55
>>503
オブジェクト指向

507:デフォルトの名無しさん
09/07/12 22:40:32
しかし、RunyとPythonはいっしょくたに語られる言語でもないと思うが。
Perl,PHP,Ruby,Pythonってくくりならわからんでもないが。

508:デフォルトの名無しさん
09/07/12 22:41:40
信者のキモさで一括りだろ

509:デフォルトの名無しさん
09/07/12 22:45:41
Rubyはキモいと感じるが、PHPとPythonはそれほど差はないと感じるが。

510:デフォルトの名無しさん
09/07/12 22:53:41
俺はRubyとPythonは大丈夫だがPerlとPHPはキモく感じる

511:デフォルトの名無しさん
09/07/12 22:56:23
そして世間の皆からキモく感じられてる>>510

512:デフォルトの名無しさん
09/07/12 22:58:54
Rubyは作者が喧嘩売ってるってかそんな感じw

513:デフォルトの名無しさん
09/07/12 23:00:22
おいデブ涙拭けよ

514:デフォルトの名無しさん
09/07/12 23:01:11
>511
残念ながら、俺はお前が想像してる以上にキモいぞ。

515:デフォルトの名無しさん
09/07/12 23:10:26
そろそろスレ違いも度を越してるだろ

516:デフォルトの名無しさん
09/07/12 23:46:34
この辺のカス言語仕事で覚えさせられるのって、ねじ穴の型番たくさん覚えさせられる
バイトみたいなもんだよな。
履歴に書いても、あぁちょっと開発をかじってんのねくらいの経験にしか扱われねーし

517:デフォルトの名無しさん
09/07/13 00:55:23
PHP信者は単にプログラミング経験が浅いだけだと思うよ。

518:デフォルトの名無しさん
09/07/13 03:57:29
LLなんてどれも目糞鼻糞じゃね?


519:デフォルトの名無しさん
09/07/13 04:01:29
特定言語の信者になっちゃう時点であれだな。
LL言語って、優劣じゃなく好みの問題じゃね?


520:デフォルトの名無しさん
09/07/13 04:21:51
Perl 素人~一般人~変人 くまなくカバー
PHP 素人から圧倒的な支持
Python 一般人~変人
Ruby 変人


521:デフォルトの名無しさん
09/07/13 04:29:11
Perl アル・ヤンコビック
PHP 田中要次
Python ばんばひろふみ
Ruby もっとがんばりましょう

522:デフォルトの名無しさん
09/07/13 12:33:22
20代専用Webページプリントごっこツールってことに気づいたのは30代になってから

523:デフォルトの名無しさん
09/07/13 13:46:47
>>520
Perl:素人、変人
PHP:素人~一般人
Python:一般人~変人
Ruby:一般人、信者

こうじゃね?

524:デフォルトの名無しさん
09/07/13 14:38:10
お前らのとりあえずPHP馬鹿にしとけばオレカコイイって言うスタンスワロタw
マジで違い分かってんのかよw

525:デフォルトの名無しさん
09/07/13 14:56:34
>>524
その反応は痛いなぁ。
お前だって今、ひらがなしか使えない奴に「かんじをつかえばかっこいいとおもってるおまえにわろた」
って言われたら呆気に取られるだろ? そういうレベルのこと言ってると自覚したほうがいいw

526:デフォルトの名無しさん
09/07/13 15:01:34
レベルング

527:デフォルトの名無しさん
09/07/13 15:02:54
おっと(r

528:デフォルトの名無しさん
09/07/13 15:50:17
つーか、PHPはどう考えても言語使用がぐだぐだだろ。
まぁ、言語として比べること時点でおかしいんだが。

529:デフォルトの名無しさん
09/07/13 16:48:08
PHPは書きやすい言語なんだろうね
ただ、例外処理についてはもっとやりやすくして欲しかった

530:デフォルトの名無しさん
09/07/13 17:08:16
PHPの言語仕様は破綻している。Perlと同じくらい。
まだJavaScriptのほうがまし。

531:デフォルトの名無しさん
09/07/13 17:11:09
PHP: Personal Home Page Tools(笑)

532:デフォルトの名無しさん
09/07/13 17:19:34
どうやら壊れてしまったようだ

533:デフォルトの名無しさん
09/07/13 18:04:03
PHPの言語仕様ならとっくに壊れてますよ。

534:デフォルトの名無しさん
09/07/13 18:17:30
JavaScriptで要改善な仕様って、このくらい?

・コンストラクタ内で関数定義したときのthisの扱い
・連想配列とオブジェクトの関係

535:デフォルトの名無しさん
09/07/13 18:17:58
言語仕様という点ではPHPとRubyはある意味対極にあるからな。
そりゃ信者同士の小競り合いが絶えないわけだ。

536:デフォルトの名無しさん
09/07/13 18:19:21
>>534
ブラウザ・バージョンでの挙動統一

537:デフォルトの名無しさん
09/07/13 18:19:51
挙動統一は仕様じゃなくね?たしかに問題点ではあるが

538:デフォルトの名無しさん
09/07/13 18:36:15
>>534
配列関連
変数スコープ
文の区切り


539:デフォルトの名無しさん
09/07/13 18:39:24
>>530
Perlの言語仕様は破綻していない。
破綻していると思うのは、訓練が足りないせい。


540:デフォルトの名無しさん
09/07/13 18:58:44
訓練を洗脳に変えるなら同意。

541:デフォルトの名無しさん
09/07/13 20:23:22
んなこと言ったら、どんな言語でも洗脳だべ
Rubyのdef~end にしても、Pythonのselfやインデントにしても

Javaなんかの洗脳も強烈だし。
Car car = new Car();
なんだこれ

542:デフォルトの名無しさん
09/07/13 22:05:33
def、end、インデントはどんなに厳しく見ても洗脳と言うには無理があるだろww

543:デフォルトの名無しさん
09/07/13 22:11:56
Perl信者が話をドローに持ち込もうと必死なんだろう。
失敗してるけど。

544:デフォルトの名無しさん
09/07/13 22:18:21
def end self インデントは、既存のプログラムを読むときに簡単に
推測可能なもの。
Perlの特殊変数をはじめとする記号の数々は推測不可能。
phpは関数名や動作が推測不可能。

545:デフォルトの名無しさん
09/07/13 22:35:50
> Perlの特殊変数をはじめとする記号の数々は推測不可能。
だとすると、Rubyの組み込み変数も推測不可能ってこったな。

> phpは関数名や動作が推測不可能。
意味ワカンネ。

546:デフォルトの名無しさん
09/07/13 22:43:51
記号が書いてあれば推測の手がかりになるけど、
文字間の略されてる部分を脳内補間して理解するのは
かなり信仰を深めないと無理。

547:デフォルトの名無しさん
09/07/13 22:51:54
記号の意味なんてのは覚えりゃいい話だよ。
推測の可・不可なんて、覚えるまでの短期間だけのオハナシ。(馬鹿以外には)本質的ではない。
もちろんその記号群が数千とかあるなら、同じことはとても言えないけど、そうじゃないし。
そう滅多に増えもしないし。

548:デフォルトの名無しさん
09/07/13 22:53:18
記号の意味っつーか、変数の中身を考えながら記号書かなきゃならんのがなあ
スクリプト言語なのにC言語でポインタ触ってる気分になる

549:デフォルトの名無しさん
09/07/13 23:41:41
PHPの関数の名前から動作を推測するのは簡単だと思うけど、
関数が多すぎだし、関数名が長すぎる。

array_push($array, ..)みたいな書き方よりも、
$array->push(..)の方がすっきりするでしょ。

550:デフォルトの名無しさん
09/07/14 00:00:38
$打つのがドルい

551:デフォルトの名無しさん
09/07/14 00:14:52
>>549
この場合は順序が本質ではないか
オブジェクト指向脳であれば、というかデータ構造を操作するという視点に立てば
「arrayにpushしたい」と考えるのが自然だと思う

552:デフォルトの名無しさん
09/07/14 00:25:10
PUSH ... TO ARRAY. でいいよ。

553:デフォルトの名無しさん
09/07/14 00:25:41
>>551
それは単に思考が日本語だからではないか

554:デフォルトの名無しさん
09/07/14 00:51:22
>>553
だからいいんじゃねーの?

555:デフォルトの名無しさん
09/07/14 00:55:37
そんなあなたには、なでしこです。

556:デフォルトの名無しさん
09/07/14 01:04:30
>>534
スクリプトにバグがあったときのIEのメッセージをなんとかして欲しい
もしかして今の新しいIEでは改善されてるのかな


557:デフォルトの名無しさん
09/07/14 01:54:35
>>555
わざわざ日本語変換なんぞしてられるか

558:デフォルトの名無しさん
09/07/14 01:58:17
ひらがなで打てばいいよ


559:デフォルトの名無しさん
09/07/14 02:01:38
>>557
俺様専用言語でも作っとけ。

560:デフォルトの名無しさん
09/07/14 08:23:54
>>547
>記号の意味なんてのは覚えりゃいい話だよ。
いやいや、Perlは$_をつかって記号すら省略してしまうじゃん
あんなのワンライナーを優先しすぎたクソ仕様
しかも@var=(1,2,3)の要素を参照するのが$var[i]とかウンコすぎる
@var[i]でいいだろ、ややこしいんだよ

>推測の可・不可なんて、覚えるまでの短期間だけのオハナシ。(馬鹿以外には)本質的ではない。
まさに洗脳された信者

561:デフォルトの名無しさん
09/07/14 08:46:01
能力が著しく低くないとわからない物ってのも、世の中にはあるものね。
俺の婆ちゃんが一人暮らししてた頃、市販品の蓋一つ、取っ手一つとっても
手が不自由な婆ちゃんにとっては性質次第で色んな不便があることをよく言ってて、
ああそうなのかぁ、と気付かされることが多かった。

562:デフォルトの名無しさん
09/07/14 11:20:05
たしかに記号だとググりにくい。

563:デフォルトの名無しさん
09/07/14 11:37:08
grepっていえよ

564:デフォルトの名無しさん
09/07/14 12:34:11
>>560
まだまだ訓練が足りない。

>$_をつかって記号すら省略してしまう
省略するかしないかはプログラマの自由。
言語仕様だけが原因ではない。

>$var[i]
@var[i]で参照してもよい。
そうするとスライスになるが、違いが
問題になることはあんまりないだろう。


565:デフォルトの名無しさん
09/07/14 13:25:09
>>564
dankogai 乙

566:デフォルトの名無しさん
09/07/14 13:29:22
おもちゃはおもちゃらしく簡単に使えないとねぇ。C#でいいやってなっちゃうし

567:デフォルトの名無しさん
09/07/14 13:33:35
>>564
まだまだ実践経験が足りない。

568:デフォルトの名無しさん
09/07/14 13:46:59
結局自分のスキルに自信アリマス!って奴なんか
本当の意味で一人もいないと思うんだけどどう思う?

だから>>567みたいな煽り食らうと

「そうか・・・(´・ω・`)」ってなる。

569:デフォルトの名無しさん
09/07/14 13:54:33
あの…VBScriptは…
すみません。土台にすら上がってませんよね。ごめんなさいごめんなさい。


570:デフォルトの名無しさん
09/07/14 13:56:13
perlは正規表現だけの言語だな。
他はなんか気に食わない。最近はいないけど、perl信者もかなりうざかったしw

571:デフォルトの名無しさん
09/07/14 14:04:57
>>560
記号が嫌ならEnglish.pm使えば?

> いやいや、Perlは$_をつかって記号すら省略してしまうじゃん
変数省略できるが、記号の省略の意味ワカンネ。

> しかも@var=(1,2,3)の要素を参照するのが$var[i]とかウンコすぎる
> @var[i]でいいだろ、ややこしいんだよ
@var[..]は配列の範囲を返す。
リストコンテキストとスカラコンテキストは理解しようぜ。

572:デフォルトの名無しさん
09/07/14 14:34:30
頭で理解しててもパッと見て判らんのよ、コンテキストって。
本質じゃないところに考える時間を割くことになる。
同じ表記が同じように通用しない。

Rubyは今は言わなくなったが、昔は「驚き最小限」なんて言葉があった。
元々PerlのパクりであるRubyにおいて
その驚きってのはコンテキストのことだったんじゃないかなと思う。

573:デフォルトの名無しさん
09/07/14 14:42:50
昔は最小限での入力とか結構持てはやされてたな

今はなんだろ?
自分は入力保管とかバリバリ使うから見易さ・判り易さ重視で組むが。

574:デフォルトの名無しさん
09/07/14 14:50:47
たとえ入力補完が発達しても数学みたいなもんで
最小限での入力というか、最小限での表記のほうがロジックが分かりやすいな。

575:デフォルトの名無しさん
09/07/14 14:51:18
今は、一貫性だと思う。

576:デフォルトの名無しさん
09/07/14 16:42:55
RubyってHSPに毛が生えたようなもの、みたいな印象しかないな。

577:デフォルトの名無しさん
09/07/14 16:49:03
>>575
今・・・は・・・?ゴクリ

578:デフォルトの名無しさん
09/07/14 17:24:57
>>575
一貫性重視なら最初からPython使えばいい。
Rubyは、Matzが書きたいように書けるのが第一で、一貫性なんて
対して重視されていない。

579:デフォルトの名無しさん
09/07/14 17:28:44
便利さのための一貫性の犠牲は歓迎。
単なる不統一は修正すればいいだけ。
その修正をまったく受け入れないのであれば問題だけど、
まぁまぁ直している。

TOMOYO Linux で受け入れてくれるための交渉術、
とあったけど、Ruby には交渉下手な上から目線が多くて残念。

580:デフォルトの名無しさん
09/07/14 17:33:29
>>578
御意

581:デフォルトの名無しさん
09/07/14 18:49:49
$hoge = hage;
print @hoge, hoge, $hoge;


582:デフォルトの名無しさん
09/07/14 23:37:12
>>571
>記号が嫌ならEnglish.pm使えば?
自分一人がEnglish使ったところで、ほかの人が使ってなかったら、結局記号の意味を勉強しないといけないんだから、意味薄いだろ。
そのくらいわかろうぜ。

>変数省略できるが、記号の省略の意味ワカンネ。
記号変数すら省略するってこと

>@var[..]は配列の範囲を返す。
だからそれがいけてないってことだよ。
@var[0]は最初の要素、@var[0,3]は0番目を含めて3つの要素、とかできたはずなんだから。
もちっと他の言語勉強しな。Pythonのスライスとか勉強してみ。

>リストコンテキストとスカラコンテキストは理解しようぜ。
そんなのが存在する時点でもうね。
そしてそれを「理解しようぜ」なんて言ってる時点で洗脳されすぎ。


583:デフォルトの名無しさん
09/07/14 23:43:05
だから、嫌いな奴は洗脳とかキツい言葉を使ってればいいさ
普通の感性では習熟とかいうんだけどな

Perlのコンテキストにしても、関数の戻り値を柔軟に持てるとか
それなりの利点もあるし、便利に使える場面もある。
あんまりしつこいと下衆っぽいよ。

584:デフォルトの名無しさん
09/07/14 23:49:35
関数の戻り値を柔軟に持てるってどういうこと?

585:デフォルトの名無しさん
09/07/14 23:54:15
まともなPerl批判も世の中には存在するんだけど、
この子が言ってるのは単に「俺は嫌い、俺は苦手」ってレベル。

あらゆる言語をあっという間に修得してしまう、優秀な俺とは関係ない次元で吠えてる。

586:デフォルトの名無しさん
09/07/14 23:59:08
気持ち悪いのキタ

587:デフォルトの名無しさん
09/07/15 00:02:41
スクリプトぱっと憶えたら優秀ってなんかピエロだな

588:デフォルトの名無しさん
09/07/15 00:09:04
Perl批判は俺が知る限り少なくとも2人居るんだが、この子ってどっちのことを指してるのだろう

589:デフォルトの名無しさん
09/07/15 00:33:46
面接でPerlが得意とか恥ずかしくて言えない

590:デフォルトの名無しさん
09/07/15 00:37:28
>>584
言葉通りの意味なら、コンテキストによって返値を変えることができるってことだろ。

my $ret = hoge(); #=> '2つあったよ!'
my @ret = hoge(); #=> ('hoge', 'page')

ただ、あんまり便利に使う状況ってのに出くわしたことはないような気もするw

591:デフォルトの名無しさん
09/07/15 00:37:31
my $self=shift;

592:デフォルトの名無しさん
09/07/15 00:43:30
>>587
ぱっと覚えられない奴がどうしようもない馬鹿なだけだものな。

593:デフォルトの名無しさん
09/07/15 00:44:13
@baka=(9,8,7)
@aho=(1,2,@baka,4,5)
print @aho

594:デフォルトの名無しさん
09/07/15 00:56:37
>590
そういや配列はスカラーコンテキストだと要素数だな
しかし、混乱の元になった記憶しかないw
普通にlen(ary)なりsize(ary)なり用意すれば良かったのにとしか思わないんだよなあ

595:デフォルトの名無しさん
09/07/15 01:01:56
perlはいまやLL界のCOBOLだな

596:デフォルトの名無しさん
09/07/15 01:03:03
Perlはすぐ使える鉛筆みたいな道具
Pythonはきちんと書くときにつかう筆
rubyはうんこふく時の紙

597:デフォルトの名無しさん
09/07/15 01:38:47
rubyが一番重要ってことだな

598:571
09/07/15 01:45:46
>>582
> @var[0]は最初の要素、@var[0,3]は0番目を含めて3つの要素、とかできたはずなんだから。
> もちっと他の言語勉強しな。Pythonのスライスとか勉強してみ。
start..(start+number-1)で指定すればいいじゃん。
まあ、勉強してみますか。

Perl
範囲でしか指定できません。

Ruby
list = %w( a b c d e f )
p list.slice(2, 3)
で、
["c", "d", "e"]
が返りますね。

PHP
$list = array('a', 'b', 'c', 'd', 'e', 'f');
var_dump(array_slice($list, 2, 3));
で、
array(3) {
[0]=>
string(1) "c"
[1]=>
string(1) "d"
[2]=>
string(1) "e"
}
が返りますね。

では、Pythonではどう書くのでしょうか。
>>582さん、教えていただけますか?

599:デフォルトの名無しさん
09/07/15 02:25:16
ここは質問スレじゃないから自分で調べろ
URLリンク(0xcc.net)
URLリンク(www.diveintopython.org)
URLリンク(www.python.org)

600:デフォルトの名無しさん
09/07/15 02:41:10
>>598
list = [ 'a', 'b', 'c', 'd', 'e', 'f' ]
list[2:5]

601:571
09/07/15 03:15:57
>>600
残念ながら、それは範囲指定だから意味が違いますね。

602:デフォルトの名無しさん
09/07/15 03:29:43
L[2:5]をL[2:2+3]に読み替えればいいじゃないか

603:571
09/07/15 03:31:08
>>600の書き方ならば
Perl
my @list = qw( a b c d e f );
print "@list[2..4]";

PHP
書式なし

Ruby
list = %w( a b c d e f )
p list.slice(2..4)

Python
d = ["a", "b", "c", "d", "e", "f"]
print(d[2:5])

で行けますが。

604:デフォルトの名無しさん
09/07/15 03:46:42
スカラ/リストの表記がきもい(他言語ではもっとシンプルな仕様で成立してる)って話のはずなのに、一体何をどう曲解してるんだ

605:571
09/07/15 03:50:30
>>604
単にキモイっていう単なる主観の感情の問題だというのか?
アホか。

606:デフォルトの名無しさん
09/07/15 03:52:24
 っつーかlistに代入するなんて(r

607:デフォルトの名無しさん
09/07/15 04:01:14
$や@を使うのは、ハンガリアン記法要らずで、分かりやすく便利。Rubyはソースコードが見づらすぎる。JavaとかC#みたいにVSとかEclipseとかのIDEを使うのが当たり前の言語なら、そう言う言語機能は不要かなと思うけど。

608:デフォルトの名無しさん
09/07/15 04:11:35
コンテキストがあいまいなことによる
読みにくさとバグの温床になるプログラムの例を
各PPPRでおながいします↓

609:デフォルトの名無しさん
09/07/15 05:52:49
>607
ハンガリアンとは根本的に違うというか、むしろ相反するような気がするが

610:デフォルトの名無しさん
09/07/15 06:35:40
@tmpと%tmp、前者が配列で後者がハッシュであることは一目瞭然。@tmp_listや$tmp_map等とする必要はない。

611:デフォルトの名無しさん
09/07/15 07:25:14
配列とハッシュが同じ名前になる場合よりも
@tmp_A, @tmp_B みたいな名前の使い方が多いから、
それがメリットだとしても機会は少ないな。

612:デフォルトの名無しさん
09/07/15 07:43:40
@tmp は文脈により要素数だったりするので配列とは限らない

613:デフォルトの名無しさん
09/07/15 08:01:49
ん?
@tmpは配列だろ?scalar(@tmp) はスカラだが。
ちなみにscalar(%tmp)は楽しいことになる。Perl大好き。

614:デフォルトの名無しさん
09/07/15 08:14:22
>>608
PPPRってなんぞ

615:デフォルトの名無しさん
09/07/15 08:16:53
$a # スカラ

@a # 配列
$a[index] # 配列の要素 = スカラ
@a[indices] # 配列のスライス = リスト

%a # ハッシュ
$a{key} # ハッシュの要素 = スカラ
@a{keys} # ハッシュのスライス = リスト


この美しさわかんねえかなあ…

リストをスカラ評価すると長さになってしまうのは、
たしかに気持ち悪いがそれとこれは別の話だと思う。

616:デフォルトの名無しさん
09/07/15 08:22:39
>>596
もうなんとか用の言語って時代じゃないだろ。もう役目を終えたよ、Perlは。

617:デフォルトの名無しさん
09/07/15 08:23:32
>>615
それは別の話ってのに異存ないが、まあ今はコンテキストの話なので、
その気持ち悪さが問題になってるんじゃね?

618:デフォルトの名無しさん
09/07/15 08:31:40
@$$#tmp

619:デフォルトの名無しさん
09/07/15 08:44:38
使い捨て言語で君も使い捨てに!

620:デフォルトの名無しさん
09/07/15 08:50:10
>>615
>@a{keys} # ハッシュのスライス = リスト
これが有効に使えるときなんかあるの?


621:デフォルトの名無しさん
09/07/15 08:53:09
>>616
DSLがどうこうという時代なんだが?


622:デフォルトの名無しさん
09/07/15 08:53:15
>>607
>$や@を使うのは、ハンガリアン記法要らずで、分かりやすく便利。
使うデータが文字列と配列とハッシュだけだった時代ならそれでもいいけど
オブジェクト指向が一般的になった現在において、この仕様はクソだよ。
それがわからないPerlerが不憫でしょうがない。

623:デフォルトの名無しさん
09/07/15 08:59:08
>>622
しょうがないだろ。アヒルのように最初に覚えた言語をry

624:デフォルトの名無しさん
09/07/15 09:49:36
>>598
話がぜんぜん違う方向に進んだね。
もとの話は$var[]が配列の要素を返し、@var[..]は配列の範囲を返すのが、いけてないしわかりにくという話だったんだけど。
別にこんなことで@varと$varを使い分ける必要なんかなく、どっちも@var[]でできるようにすれば
誰にもわかりやすいのに、Perlはそうなってないから変だよねという話が、
いつのまになんで範囲指定の方法の話になっちゃったんだろう。



625:デフォルトの名無しさん
09/07/15 10:49:19
とりあえず、
配列の要素をスカラーとして取り出す方法と、
そのスカラー1個だけを要素とする配列を作る(スライスする)方法は
別々に用意した方が言語仕様的にはいいんじゃないのか?

626:デフォルトの名無しさん
09/07/15 10:51:58
Python なら、
a = range(5) # [0,1,2,3,4]
b = a[3] # 3
c = a[3:4] # [3]

627:デフォルトの名無しさん
09/07/15 11:00:22
d = a[slice(3, 4)] # [3]

628:デフォルトの名無しさん
09/07/15 11:29:15
>>620
ハッシュに代入するとき役に立つ。

629:デフォルトの名無しさん
09/07/15 11:39:31
>>620
ハッシュから複数の値を取り出すときに使う

630:デフォルトの名無しさん
09/07/15 11:41:12
# Ruby

a = (0..4).to_a # [0,1,2,3,4]
a = (0...5).to_a # [0,1,2,3,4]
p a[3] # 3
p a[3..3] # [3]
p a[3...4] # [3]
p a[3,1] # [3]
p a[-2] # 3
p a[-2..-2] # [3]
p a[-2...-1] # [3]
p a[-2,1] # [3]

631:デフォルトの名無しさん
09/07/15 13:06:17
>>628
kwsk

632:デフォルトの名無しさん
09/07/15 13:20:37
急に書き込みが増えたねw

633:デフォルトの名無しさん
09/07/15 13:41:07
>>630
なにそれこわい

634:デフォルトの名無しさん
09/07/15 14:47:45
どの言語であれ、配列をスライスする処理なんか、一年に一度も書かないが。

635:デフォルトの名無しさん
09/07/15 15:17:31
>>631
@names = ("Alica", "Bob", "Chris")
@ages{@names} = (28, 31, 72);

$ages{"Alice"} == 28

636:デフォルトの名無しさん
09/07/15 15:31:54
何故にアリカ?

637:デフォルトの名無しさん
09/07/15 15:51:53
@names = ("Alica", "Bob", "Chris");
@ages{@names} = (28, 31, 72);
print %ages;
@ages{'Chris','Bob'} = (34, 37);
print %ages;
Bob31Chris72Alica28Bob37Chris34Alica28

638:デフォルトの名無しさん
09/07/15 18:30:03
>>637
なるほど。勉強になった。

機会はなかなかなさそうだけど、
使い道はちゃんとあるんだな。


639:デフォルトの名無しさん
09/07/15 20:46:22
>>622
どんなにオブジェクト指向を強くしたところで、プリミティブ型や配列型のないプログラミングなどあり得ない。
スカラ変数とリファレンスを分けるシジルがあればより便利だということに過ぎない。何もないよりずっといい。
>>610の$tmp_mapは%tmp_mapの間違いだが、これはPerlであればコンパイルエラーを起こすので、未然にバグを防げる。

640:デフォルトの名無しさん
09/07/15 21:02:44
記号の付け間違いなんてバグは、その仕様がなかったらそもそも起こらないだろ

641:デフォルトの名無しさん
09/07/15 21:04:26
配列にアクセスしているつもりが、その変数はハッシュだったということ。誰にでもよくあるミス。

642:デフォルトの名無しさん
09/07/15 22:26:05
>637を見て、
「さすがPerl、記述性が高い」と感じるのがperler。
「滅多に書かない記述の為に文法が歪められてる」と感じるのが一般人。

643:デフォルトの名無しさん
09/07/15 22:32:01
>>642
Pythonistaは、Pythonではどうするか考える。
names = "Alica Bob Chris".split()
ages = dict(zip(names, (28, 31, 72)))
print ages
ages.update(Chris=34, Bob=37)
print ages

644:デフォルトの名無しさん
09/07/15 22:59:35
ハッシュのスライスって初めて聞いたがそんなのあったんだな。
ただ、スライスのイメージとちょっと違うな。ハッシュの範囲指定だと、キーがある正規表現にマッチする集合とかならわかるけど。

645:デフォルトの名無しさん
09/07/15 23:40:06
>>644

%h = ('hoge'=>1, 'page'=>2, 'moga'=>3, 'guge'=>4);
@a = @h{grep {/ge/} keys(%h)};

まさにそういう事をしやすくするためにPerlは柔軟なリストなわけで。
まあ、高尚な原理や理論より便利(っぽ)さ上等

646:デフォルトの名無しさん
09/07/16 00:09:14
>>645
結果もハッシュで欲しいならこうかな

my %h2;
my @keys;
@h2{@keys} = @h{@keys=grep{/ge/}keys(%h)};

まあなんだ。面白いんだが、こういったことをやりすぎると
読みにくくなるのは否めないという

647:デフォルトの名無しさん
09/07/16 00:13:35
URLリンク(anond.hatelabo.jp)

648:デフォルトの名無しさん
09/07/16 00:27:08
10 == "0x0A"
がtrueで
"0x0A" == 10
がfalseになるスクリプト言語はありだと思う

649:デフォルトの名無しさん
09/07/16 00:29:07
>>647
これが「コンテキスト」の上を行く「場当たり」って奴か
勉強になるな~

650:デフォルトの名無しさん
09/07/16 00:34:05
この8進数はねぇよ・・・

でも、PHPのこのいい加減な解釈ってずいぶんお世話になってるなぁ自分

651:デフォルトの名無しさん
09/07/16 00:44:46
var_dumpで出るのは格納してる型であって、==で比較される時に自動で解釈されるんだよな

652:デフォルトの名無しさん
09/07/16 00:48:25
>>648

問題は常にそう解釈されるのでは無く
PHP自身がどのようにコンパイルされたか
という環境によって動作が異なることに在る

653:デフォルトの名無しさん
09/07/16 00:48:40
不安なときは===を使えというのがPHPとJSのお約束

654:デフォルトの名無しさん
09/07/16 01:14:51
多言語だと軽くスルーできるMap/Vectorの話でこんなに混乱してるってのは結局便利じゃねーん
だろうなって思うw

655:デフォルトの名無しさん
09/07/16 01:34:37
URLリンク(codezine.jp)

656:デフォルトの名無しさん
09/07/16 01:39:24
配列のスライスがあるんだから、ハッシュのスライスもあるだろうと思うのは自然なことだろ。

657:デフォルトの名無しさん
09/07/16 02:15:49
>>656
似たようなことができるようになってるだけで、
根本的には概念が違う気がする。

リストの2~3番目に、10要素を代入するとかできるからスライスってのが便利なわけで。

658:デフォルトの名無しさん
09/07/16 03:34:55
>>639
>どんなにオブジェクト指向を強くしたところで、プリミティブ型や配列型のないプログラミングなどあり得ない。
>スカラ変数とリファレンスを分けるシジルがあればより便利だということに過ぎない。何もないよりずっといい。

何をいいたいのかまるでわからない。プリミティブ型や配列型を排除しろとは誰も言ってないし、うーん。
@tmpがリスト、%tmpがハッシュ、で、それ以外のデータ構造を使ったら$tmp

べつに、ぜんぶ$tmpで統一してくれていいんだけど。

>>>610の$tmp_mapは%tmp_mapの間違いだが、これはPerlであればコンパイルエラーを起こすので、未然にバグを防げる。
これもなにがどうエラーになるのか不明なので、解説よろしく。

つーか、もちっとわかりやすい文章書こうぜ。Perlerだから仕方ないけど。


659:デフォルトの名無しさん
09/07/16 03:38:10
JSON

660:デフォルトの名無しさん
09/07/16 04:49:21
>>657
部分集合の操作が近いかもね。
perlのハッシュスライスの書式は座標が直感的に使えるからか、
概念増やすのが面倒で配列スライスに似せたのかのどちらかのように思う。

perl
my %color = (R => 0, G => 0, B => 0);
@color{'R', 'G', 'B'} = (63, 127, 255);
print @color{'R', 'G', 'B'};

ruby
color = {'R' => 0, 'G' => 0, 'B' => 0}
color.replace({'R'=>63, 'G'=>127, 'B'=>255})
p color.values_at('R', 'G', 'B')

661:デフォルトの名無しさん
09/07/16 11:25:27
Perlerはバカにされやすいからな。がんばって難しく言おうとしちゃうんだよ

662:デフォルトの名無しさん
09/07/16 11:51:27
$ perl
my %color = (R => 0, G => 0, B => 0);
@color{'R', 'G', 'B'} = (63, 127, 255);
print @color{'R', 'G', 'B'};
63127255

$ ruby
bash: ruby: command not found

$ python
>>> color = dict(R=0, G=0, B=0)
>>> [color.__setitem__(k, v) for k, v in [('R', 63), ('G', 127), ('B', 255)]]
[None, None, None]
>>> print [color[k] for k in color]
[255, 63, 127]


663:デフォルトの名無しさん
09/07/16 11:58:29
>>662
color.update( (k,v in [('R', 63), ('G', 127), ('B', 255)]) )
の方がPythonicなんじゃない?

664:デフォルトの名無しさん
09/07/16 13:13:22
NameError: name 'k' is not defined


665:デフォルトの名無しさん
09/07/16 13:18:12
ここが言語を比較できる僕かっけースレですか

666:デフォルトの名無しさん
09/07/16 13:18:40
color.update([('R', 789), ('G', 456), ('B', 123)])
print map(lambda k: color[k], ('R', 'G', 'B'))


667:デフォルトの名無しさん
09/07/16 13:19:42
yes you does

668:デフォルトの名無しさん
09/07/16 13:20:58
doesだってwww

669:デフォルトの名無しさん
09/07/16 13:22:30
URLリンク(thestar.com.my)

670:デフォルトの名無しさん
09/07/16 16:13:18
334 :可愛い奥様:2007/06/26(火) 09:46:19 ID:raxdPvfD0
OLだった頃、会社で働いていた日本に超詳しいベルギー人が言ったことに納得してた。
日本文化は身内受けの凝り性文化だそう。
外国文化に負けまいとしているのではなく、
世に意図的にインパクトを与えようとしているのでもなく、
今ここにいる同じ価値観を共有する仲間からの喝采を浴びたいと考える。
その結果、同じものを志す者同士の「これすごいだろ、おもしろいだろ」合戦が始まり、
そこで生み出される物が自然と研ぎ澄まされていく。
でもその競争は、敵対的なものではなく、お互いを尊敬しあいながら、静かに深く進行していく。

そしてある日、偶然目撃した異文化出身の人間(外国人)から、
それがすごいものであることを知らされる。
ほとんどの日本人はその日が来るまで、自分たちが作り上げた物がすごいものとは知らない。
もろもろの伝統文化、芸能、電化製品、アニメ、他、みんな同じパターンで世界に広まっていった。
だから、日本がここまで発展してきたのも必然的なものだし、
この精神が衰えない限り、これからも日本は誰に頼まれることもなく、
知らないうちに勝手に世界にインパクトを与え続けていくだろうと。

671:デフォルトの名無しさん
09/07/16 16:17:34
英語について 「Do」と「Does」は何を区別して、使い分けるのでしょうか?
URLリンク(detail.chiebukuro.yahoo.co.jp)

「Does you play golf?」
これは間違いだとおもいます。

「Does your father play golf?」

ならあってます。

でも口語や歌詞などで
She don't know.
なんてのも有りなんで、流行ってるのかも知れませんね。


672:デフォルトの名無しさん
09/07/16 16:20:19
Does youが有りだからyou doesも有りだと思ってる小学生www

673:デフォルトの名無しさん
09/07/16 16:20:50
how foolish you are

674:デフォルトの名無しさん
09/07/16 16:24:34
hows じゃね

675:デフォルトの名無しさん
09/07/16 16:33:54
wish you were dead

676:デフォルトの名無しさん
09/07/16 19:58:26
use English;

677:デフォルトの名無しさん
09/07/16 20:54:33
By the way, please listen to me. This doesn’t have any relevance about that.
Few days before, I went to the Yoshinoya in my town. Yoshinoya.
But I can't step in; because there are too many people. Then looking around,
I found advertisement Curtain. It said "150 yen off"
Don’t come to the Yoshinoya which you don't generally come to, just because of only 150yen off.
You must be foolish or stupid! Oh! There is parent-and-child, and the Father of which is saying "I'm going to order Tokumori
Are you all eat in Yoshinoya? Congratulations! I can’t stand it ever more! I'll give you 150yen and please go away!
Yoshinoya should be more bloody & violent.
You cannot predict when the tow man face each other in the character table of U begins to fight. Stab or be stabbed.
This is the Yoshinoya. Women and Child, Go away! Don't exist in Yoshinoya.
Then, I could sit on the seat, the man in next seat ordered "Ohmori Tuyudaku"
That was sufficient reason to enrage me absurdly violently. Hey! You said Tuyudaku?
It’s perfectly out of date. It’s old fashioned Do you really want to eat Tuyudaku?
How foolish you are. I want to question you whether you really want to eat it or not.
I want to question you for one hour! You just want to say Tuyudaku.
In the side of expert of Yoshinoya, The newest fashion is "Negidaku" Year this is.
It has more negi but less meat. And put egg on this. This has no enemy.
Yes this is. But if your order this, your face must be memorized. It may be the sword of many edges.
I don't recommend to bigger. Gyuhsaketeisyoku may be fit on you.

678:デフォルトの名無しさん
09/07/16 20:56:39
Why don't you talk about here?

>$ ruby
>bash: ruby: command not found


679:デフォルトの名無しさん
09/07/16 23:40:57
        |リ u' }  ,ノ _,!V,ハ |
       /´fト、_{ル{,ィ'eラ , タ人        Ты думаешь, из меня,
     /'   ヾ|宀| {´,)⌒`/ |<ヽトiゝ      я не могу сказать.
    ,゙  / )ヽ iLレ  u' | | ヾlトハ〉
     |/_/  ハ !ニ⊇ '/:}  V:::::ヽ      Я не знаю,
    // 二二二7'T'' /u' __ /:::::::/`ヽ    что случилось.


680:デフォルトの名無しさん
09/07/16 23:42:17
な、何を言ってるのかわからねー(以下略

681:デフォルトの名無しさん
09/07/16 23:57:57
>676
それはツッコミかw

682:デフォルトの名無しさん
09/07/17 18:56:02
for my $x (@{$self->{'ls_ref'}}) {

683:デフォルトの名無しさん
09/07/17 19:32:59
for x in self.__ls_ref:

@ls_ref.each{|x|

684:デフォルトの名無しさん
09/07/17 19:45:18
334 :可愛い奥様:2007/06/26(火) 09:46:19 ID:raxdPvfD0
OLだった頃、会社で働いていた日本に超詳しいベルギー人が言ったことに納得してた。
日本文化は身内受けの凝り性文化だそう。
外国文化に負けまいとしているのではなく、
世に意図的にインパクトを与えようとしているのでもなく、
今ここにいる同じ価値観を共有する仲間からの喝采を浴びたいと考える。
その結果、同じものを志す者同士の「これすごいだろ、おもしろいだろ」合戦が始まり、
そこで生み出される物が自然と研ぎ澄まされていく。
でもその競争は、敵対的なものではなく、お互いを尊敬しあいながら、静かに深く進行していく。

そしてある日、偶然目撃した異文化出身の人間(外国人)から、
それがすごいものであることを知らされる。
ほとんどの日本人はその日が来るまで、自分たちが作り上げた物がすごいものとは知らない。
もろもろの伝統文化、芸能、電化製品、アニメ、他、みんな同じパターンで世界に広まっていった。
だから、日本がここまで発展してきたのも必然的なものだし、
この精神が衰えない限り、これからも日本は誰に頼まれることもなく、
知らないうちに勝手に世界にインパクトを与え続けていくだろうと。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch