- 1 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 03:18:33 ]
- 最強のLL=軽量プログラム言語は、どれよ?
エントリーは、 Perl、PHP、Python、Ruby、JavaScript・・・ さあ、死ぬまで語りやがれ!!!
- 299 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 21:49:45 ]
- Java系等のはカス扱いで。
- 300 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 22:11:26 ]
- >>298
いや入らない。 ただVBはLL方向へ進むべきだったという話をしているだけです。
- 301 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 22:21:34 ]
- LLの定義論うざい。
そもそもLLはRuby基準で立場が近いかどうかが問題だ。 厳密な定義は必要ないし、そもそもRuby使い以外はLLなんて言葉はつかわない。
- 302 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 22:23:42 ]
- なんかわけわかんねぇ文章だな。
Rubyに近いほど、よりLL。 あまりにもRubyより簡単すぎたらLLじゃない。
- 303 名前:258=260 mailto:sage [2009/02/26(木) 22:35:51 ]
- >>294
高校生のとき21世紀には、CADのようにGUIで部品を結線するだけでプログラムが 出来る時代が来ると思っていました。
- 304 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 22:44:49 ]
- デスクトップ時計とかカレンダーみたいな小物なら
C#ならまさにRADでポトペタ、プロパティ設定だけで コーディングなしでできるがな。 (もちろん、色々細かいことやろうとしたらコーディングは必要だが)
- 305 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 22:55:31 ]
- HTML、MXML、XAMLとか画面を作るだけなら
プログラミング言語の出番では無くなりつつあるような。 もちろんポトペタを実現するソフトの力もあるけど。
- 306 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:55:19 ]
- >>303
それって、RPGツクールだけでRPGがとか、 シューティングツクールだけでシュー(ry 格闘ゲ(ry というのと変わらん妄想な気がする。 結局こったことやろうとすると、ツール上でプログラミングしないといけなくなるんだよな
- 307 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:58:45 ]
- まあ、妄想とはいったけど今の段階ではということで、
30年くらい先は変わるんだと思う。 RPGツクールも新しいのは Ruby乗っかってるし、 ジャンル特化のゲームエンジンにちょっと汎用的なDSL入れた、見たいな構成なんて、 今時のゲーム開発じゃ珍しくない。 web周りがまだ続くんなら、ポトペタ系webフレームワークがでたっておかしくない。 ・・・CodeGea(いやなんでもない
- 308 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 00:04:15 ]
- Plagger とか Yahoo! Pipes とか Popfly とかその辺のこと?
- 309 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 01:40:28 ]
- どんどん新しい技術が出てくる時代だからね。UI言語みたいなものよりテキスト言語じゃないと融通が
きかなくて対応できないだろうね。 でもいずれ何十年も先に技術も安定して規格化も進めば、UI言語みたいなものも発展できるかもね。
- 310 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 02:17:24 ]
- 用途は限定されるけど、結線でUIを構築するなら、Quartz Composerってのがあるね。
文字列の回転角度などのようなプロパティは、直接指定する必要はあるけど、基本、結線するだけで、リアルタイムで結果を表示してくれるよ。 Mac限定だけど
- 311 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 02:21:08 ]
- ぶっちゃけGUIとCUIに向きと不向きがあるのと一緒で
何でもポトペタで楽にってのは幻想だと思う マウスやゲームパッドで漢字の人名を入力することを考えてごらんよ 超面倒くさいだろ? 電卓だって、GUIの電卓よりCUIのがずっと使いやすい
- 312 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 02:31:44 ]
- グラフィカルな存在を扱うケースでは、グラフィカルに設計できるのが一番では
絵を書くときには誰だって筆を使う PostScriptを直接書くというケースは多くないだろう
- 313 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 02:37:03 ]
- >>312
うんだから向き不向きってことね ダイアログエディタみたいなGUIが向いてるものはどんどんGUI化すればいいが、 実際には既にかなりのものがGUI化されているだろう それ以上は疑問だね
- 314 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 02:41:41 ]
- >>311
それはGUIだからじゃなくてマウスだからじゃない?
- 315 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 06:29:26 ]
- touch(panel/pad)て昔からあるけど
DesktopPC用には普及してないな
- 316 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 07:34:35 ]
- 高いからだろ
- 317 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 09:32:58 ]
- >>316
そういって参入して死々累々なのがタッチパッドインタフェース。 タッチパッドが悪いというより、なぜか指で操作させようとするのが 敗因だと思うけど。ペン操作は普及したし。
- 318 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 09:41:48 ]
- タッチパッドはタッチパッドで、結構進化して来てるよ。iPhoneとか、なかなか面白い動きをする。
ペンタブレットはあれはあれで、実は「細かい点の操作」に弱いって欠点があるんだな。 マウスやタッチパッドは、ポイント→その位置から動かさないでクリックって動作がしやすいんだけど ペンタブレットだとそうも行かない。一応、少しだけ浮いた状態でポインタが出るんだが、それでも狙った位置からはブレやすい。
- 319 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 00:38:29 ]
- タッチパネルとタッチパッドは別もんだな
タッチパネルは、もし安く高性能なものが普及しだしたら、それなりに便利だと思う マウスでクリックしすぎると指が痛くなってくるけど、そんなとき画面をペンでポチって できるのは、作業中の気分転換にいいかもw
- 320 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 01:31:43 ]
- で
何の話だっけ?
- 321 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 03:01:32 ]
- >320
PerlもPythonもRubyも大きなテコ入れをしている件について
- 322 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 03:10:31 ]
- 米国でRuby関連書籍の売り上げが減速か
>2008年第4四半期の売り上げで、前年同期比965%増という大躍進を遂げているのはObjective-C。 >ほかにActionScriptも33%増と好調。逆に落ち込みが激しかったのはRubyで、51%減となっている。 >ほかに落ち込みの大きい言語としては「JavaScript(24%減)」、「Visual Basic(15%減)」、「Perl(25%減)」、「Java(12%減)」などがある。 www.atmarkit.co.jp/news/200902/27/langs.html
- 323 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 04:05:25 ]
- まあ別にいらないしな
- 324 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 04:06:47 ]
- >> 322
ruby本の落ち込みは、railsは一時的なブームだったということかな? Objective-Cはiphoneアプリの開発言語だよね。macの売り上げも伸びたんだろうね。 phpは相変わらず人気だね。
- 325 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 06:11:51 ]
- Rubyはソース嫁に辿り着く
- 326 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 07:34:42 ]
- Rubyは対話式インタプリタだから生きるものかもしれないな。
コード補完機能を備えた優秀な開発環境があれば 別にコードが冗長でもかまわないわけだし。 Pascalみたいにコンパイル速度が速ければ インタプリタである必要もないし。 Rubyで使い捨て以外のプログラム書く理由がないわ。
- 327 名前:デフォルトの名無しさん [2009/02/28(土) 08:54:46 ]
- >>322
iPhoneの影響か。 長らくNeXT及び、その後継であるMac OS Xの専用言語に近い状態だったが、2007年に入り、Apple社の携帯電話iPhoneにおいてCocoa touchフレームワークの記述言語として採用。習得者の人口が増える傾向にある。
- 328 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 09:05:04 ]
- Railsの流行も落ち着いてきたということだろう。もう4年もたつしな
- 329 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 10:28:12 ]
- オンラインで読めるマニュアルとかチュートリアル、解説サイトが充実していれば本なんかいらんけどなあ。
ちょっとググレば出てくる情報に3000〜円とか出したくないし。 まあ、手元においておきたいときも、ないことはないけど。 本が売れてるって、実は言語(フレームワーク)そのものが使いにくいからじゃね?なんてうがった見方をしてみたり^^;
- 330 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 10:40:55 ]
- それはうがってるんじゃなくて、(Ruby信者として)もがいてる感じ。
- 331 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 11:52:14 ]
- 本買う行為はお布施だと思えば仕方が無いかな
- 332 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 11:57:00 ]
- ひたすらに現世利益を求める衆生にはそれがわからんのだな
- 333 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 12:12:56 ]
- お布施は信者以外には理解不能だからなぁ
- 334 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 13:17:15 ]
- Rubyとか互換性皆無で一年前の情報がゴミになるからな。
他言語でもRails風フレームワークも増えてきたし、 敢えてRubyにこだわらなくてもいいような。
- 335 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 14:14:09 ]
- 教祖様は気分で仕様変えるし、
メンテナはすぐヘソ曲げるし、 コミュニティの殆どは「誰か働けよ、中傷してやるからよぅw」モードだし、 普通に考えてRubyに価値があるわけないよね。
- 336 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 15:27:46 ]
- PHPはやはり強いな。
初めにやったもん勝ちなんだよな、こういうのは。
- 337 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 18:37:40 ]
- Rubyの方が昔からあったような気がする
- 338 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:32:57 ]
- まあ、シェア奪ったもん勝ちってことだろ。
- 339 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 22:32:21 ]
- >>335
Rubyの教祖様ってPHPをさんざん叩いてた人じゃないの? 当のRubyはそんな有様だから足引っ張ってんのか?ww
- 340 名前:デフォルトの名無しさん [2009/02/28(土) 23:59:35 ]
- PHPはウェブアプリのコーディングしてて「こんなのないかな?」っていう
関数は既に用意されてることが多いからやっぱ強い(自作関数だらけにもならんし)。 ヴォキャブラリーの力が圧倒的だから まあウェブ用途では当面代替になりそうな言語はないね。
- 341 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 00:22:09 ]
- PHPよか、Rubyの方が柔軟に書けそうに見えるんだけど気のせいか?
パッと見でPHPって、Webで使う用のCにしか見えないんだけど
- 342 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 00:32:08 ]
- Web用のCだったら、今頃使いまくってるけどな。
PHPは歴史を引きずって関数が増えてるだけ。 末期のBASICを思い出すわ。 DB接続だけで6種類以上あったり、勘弁してくれ。
- 343 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 00:34:11 ]
- まぁDB周りはクラス作ったりしてまとめたりしてるわ
PostgreSQLとMySQLしかつかってないが。 B→Cときた自分としては、PealやRubyってすごくソースが見づらい。
- 344 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 00:36:15 ]
- 沢山の人が読める
動かせる鯖多い phpの利点なんて他に無いでしょ ライブラリなんてpythonだろうがrubyだろうがperlだろうが不自由しませんよ phpは書きやすくはないと思う。むしろ他より疲れる。 よくも悪くも馬鹿正直な子のイメージ
- 345 名前:デフォルトの名無しさん [2009/03/01(日) 00:45:37 ]
- >>344
PHPは書きやすいから沢山の人が読めて、多くの鯖がサポートしてるんだが。
- 346 名前:デフォルトの名無しさん [2009/03/01(日) 00:57:26 ]
- PHPとPerlのちがいはなにですか?
PHPの方がゴージャスなのでしょうか。
- 347 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 01:04:24 ]
- >>345
書きやすくないよ。PHP以外の言語やったことは?
- 348 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 01:04:57 ]
- Web鯖新調したら動かないって大概Perlで
PHPで書き直すことになって俺の作業がすすまん。。。
- 349 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 01:24:37 ]
- >>348
普通は逆じゃないか? サーバ依存のPerlコードなんてどんなのがあるんだろう。 モジュールが入ってないとかそんな問題では。FastCGIとかそういう関係かな。 書き方があんまり古いから、いっそ書き直すってのならわからんでもないが、 PHPの古いコードを書き直すのも大概しんどい作業だから、それは言語のせいではないし。 PHPで書き直す必要のあるシチュエーションがあんまり思い浮かばない。
- 350 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 01:41:08 ]
- >>349
サーバーの中のことはあまり知らないんだが、今あるWebサーバーを CentOSに集約する作業で動かないのが出てくる パーミッションやら権限やらパスやら書き直したんだがやっぱり動かないんだわ 大半はメール、あとはDBやら出力の文字化けたりとかそんなかんじ バッチの書き直しが俺に来なかったのだけが救い・・・
- 351 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 01:57:49 ]
- >>350
コード読まずに環境変えて動かんってそれは仕方がない。 Perlのせいではないぞそれ。 むしろPHPの方が、バージョンや設定の違いのせいで書き直しとか動かんとか多い印象。 また、例えば/etc/aliasesいじってメールアカウントを量産するとか、パイプなどで コマンド直に叩いてるとか、そう言った感じのサーバ依存処理をごにょごにょされまくってたら、 もともとPHPだったとしても多分ひどいことになってるだろ > サーバーの中のことはあまり知らないんだが 一番の問題はこれじゃないかと。 結局これである程度できてしまうのが、PHPの利点ってことになるんだろうか。 欠点と言うことになるんだろうか。
- 352 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 02:37:01 ]
- >>351
鯖見てる人がPerl使える人だから上司もそうか、じゃぁ仕方ないで俺に来るんだよね。 メールは、ライブラリ入れてるんだけど動かないっていう状態。 俺はパイプとかさっぱり。 普通にPHPの文法でDBから引っ張ってきてメール送信するように書き直してるだけ。 PHPもDB入れ替えたからSQL全部書き換えなんだが全く手が付けられん状態。。。
- 353 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 06:00:02 ]
- 最近のCentOSではデフォでsendmailとpostfixが両方入ってるしMySQLは3系、4系、4.1系以降で
文字の取り扱いが大きく変わってるからその辺りだろうね。 直すのにそれほどの手間じゃないと思うけどそれを出来ない人に任すような会社であれば どのみちPHPにしてしまった方がいいかもね。
- 354 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 07:07:35 ]
- >>341
PHPは誰でも使えるJavaとかC#みたいな感じ。 しかし、仕様の変さでハマりどころの多さVBやVBA並w
- 355 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 08:45:27 ]
- >>350
馬鹿じゃね
- 356 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 09:38:27 ]
- 全くの素人です
プログラミングを学ぶにはパイソンかルビーのどちらかが良いと聞いて3日ほど調べてるんだけど ルビーの方がわかりやすい解説を見つけられるんでルビーにします
- 357 名前:デフォルトの名無しさん [2009/03/01(日) 10:04:04 ]
- ルビー
- 358 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 10:32:40 ]
- さあ、ソースコードをコンパイルする作業に戻るんだ。
- 359 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 11:02:50 ]
- >>356
ルビーに比べたらパイソンの資料が少ないのは否めないな。 レンタルサーバーへのインストールはどっちも少なくてガッカリするが。
- 360 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 11:58:25 ]
- なんかプログラミングしたいだけならschemeでもやってれば。マジレス
- 361 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 12:18:04 ]
- パイソンからジャバののちCかルビーからジャバののちCを学ぶルートがよいとありましたので
この二つから選んだ次第です
- 362 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 12:34:04 ]
- 何のルートだw
趣味なら何でもいいんじゃないか。
- 363 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 12:54:45 ]
- >>359
重要なのは中身さ。 英語ふくめればPythonの濃さは異常だぞ! 濃さ(マニアックさ?)で言えば最強はperlだと思うけどw
- 364 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 13:02:14 ]
- 真にディープなPerl信者は、言語の汚さをどれだけ指摘しても、
全部受け止めた上で「だがそれがいい」って自然体で言ってのけるからな。 指摘に対して必死になりがちなRuby信者やPython信者には無い強さがあるw
- 365 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 13:02:31 ]
- >>361
やるならforthをやれ
- 366 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 13:02:33 ]
- basic->asm->Prolog->FORTRAN->Pascal->Lisp->C->PL/I->C++->Smalltalk->Objective-C->Java->Perl->Ruby->PHP->Python->C#->JavaScript<-いまここ
- 367 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 13:03:07 ]
- ああforthもやったわ
- 368 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 13:21:07 ]
- やはりパイソンは良いですか
私も読みやすいというのは大きな利点じゃないかとは思ったんですよね すでにあるものをもう一度一から作るような真似は避けろともありましたし
- 369 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 14:24:48 ]
- 俺のスクリプトのルート
PHP→Python←いまここ PHPから入ると組み込み関数に頼りすぎて他の言語をやる時に散々なことになる。
- 370 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 14:25:04 ]
- Pyは初心者にとっては字下げ矯正箸だな
あのインデントが総てにおいて正しい、とまでは流石に言わないが かなりの場面で通用する、それなりに正しいインデントが身につく
- 371 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 17:21:39 ]
- いや、そもそもインデントもろくにできないなんて
プログラムできるとかいう以前の問題だろ 俺のスクリプトルート BASIC→C→C++→VB→VBA→Perl→PHP←いまここ 文字列関数とか連想配列とかどんだけ便利(ry
- 372 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 18:29:08 ]
- BASIC->C->sh,awk,sed->elisp->Perl->Tcl->Python->Ruby->Java<-今ココ
インデントって...。どんなエディタつかってんだよ 作りたいものがないのに入門したいなら、Cとscheme。異論は認めない。
- 373 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 19:11:28 ]
- >>372
まあプログラムがどう実行されるかを理解するなら両者が基本だよね。 それ以前のプログラミング手習いの段階なら多分Py,R,JSあたりで打鍵に抵抗なくした方がいいが。
- 374 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 09:36:59 ]
- レンタルサーバーならさくらインターネットがパイソンもルビーも対応してるようですが
どなたかご利用の方いらっしゃいましたら使用感を教えてください
- 375 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 09:43:31 ]
- レンタル鯖板いけ
- 376 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 09:44:33 ]
- RubyもPythonも、インタープリタとして使うだけなら使用感も何もないのでは。
バージョン通りの動きをするだろ。 WEBシステムの実装言語として使うなら、本体よりもむしろFastCGIやmod_**の方の 設定の可否などが大きいはず。そういうことを聞いてるのかな?
- 377 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 09:46:38 ]
- >>374
レンタルサーバの使用感ならhosting板、 CGIのバックとしての使用感ならwebprog板で訊いて下さい。
- 378 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 13:54:25 ]
- 以下の内容は、某スレに書き込んだものなんだけど、自分には結構面白いやり
取りになったので、いろんな言語でやってみたくなった。 ある大きな連想配列から、いくつかのキーを持つ要素だけを取り出した、部分 連想配列を作りたい。 // PHP版 $request = array('hoge'=>1, 'fuga'=>2, 'piyo'=>... //これからキーが hoge, fuga の物だけを取り出すとすると、 foreach (array('hoge', 'fuga') as $param) { $a[$param] = $request[$param]; } これ、いろんな言語で、なるべく簡潔に書くにはどうしたらいいだろう?
- 379 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 14:11:16 ]
- >>378
Perlで my %request = ('hoge'=>1, 'fuga'=>2, 'piyo'=>3); my %a = (); my @keys = ('hoge', 'fuga'); @a{@keys} = @request{@keys}; ググってサンプルを見ながら適当に。なんかおかしいorもっと簡潔に書けるかも。
- 380 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:00:14 ]
- >>379
Perl って、 ・連想配列の引数に、配列を与えられるのか。すげー。 ・変数名のプレフィックスが型によって違うから、目がちかちかするのう。 Perl講座 2章 [変数] www.site-cooler.com/kwl/perl/2.htm
- 381 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:02:53 ]
- ちなみに、ほかに書き込んだのは
PHP@プログラム板 pc11.2ch.net/test/read.cgi/tech/1232712334/341- Pythonのお勉強 Part32 pc11.2ch.net/test/read.cgi/tech/1234716330/275-
- 382 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:07:09 ]
- JavaScriptは多分愚直にループするしかないかな?
Rubyはなんかメソッドうにょうにょでできそうだけど、俺は知らね。
- 383 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:08:14 ]
- >>380
配列周りでぼんぼことフラット化する癖は……
- 384 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:32:05 ]
- バベル案内
www.aoky.net/articles/steve_yegge/tour_de_babel.htm > Perlは夏の台湾の通りの上で破裂したマッコウクジラだ。はらわたがそこら > 中に飛び散って、車や自転車や歩行者を覆っている。それがPerlだ。本当に > チャーミングだ 。 (略) > Perlがリスト処理をできないのは、リストを自動的に平坦にするという救い > がたく愚かな決断をラリーが初期にしたことによる。そのため(1, 2, (3, > 4))は不思議なことに(1, 2, 3, 4)に変わってしまう。あなたはこんな風になっ > てほしいと思ったことはないだろう。しかしラリーがある日たまたま何かの > 問題でそうなるのが都合が良かったため、それ以来Perlのデータ構造はまっ > たくの破裂したクジラとなってしまったのだ。
- 385 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:38:56 ]
- >>384
釣れますか?
- 386 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:55:14 ]
- Rubyをよく知らない俺様が通りますよ。
irb(main):001:0> request = {'hoge'=>1, 'fuga'=>2, 'piyo'=>3} => {"fuga"=>2, "hoge"=>1, "piyo"=>3} irb(main):002:0> a = {} => {} irb(main):003:0> ["hoge", "fuga"].map{|x| a[x] = request[x]} => [1, 2] irb(main):004:0> a => {"fuga"=>2, "hoge"=>1} これではforループがmapに変わっただけだな。
- 387 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 16:20:28 ]
- Rubyは中途半端な私が通りますよ。
request = { 'hoge' => 1, 'fuga' => 2, 'piyo' => 3 } keys = ['hoge', 'fuga'] a = Hash[*keys.zip(request.values_at(*keys)).flatten]
- 388 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 16:26:37 ]
- >>387
*keys の * ってなにをするものなの? 良かったら教えて。ググりようがないので。
- 389 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 16:38:22 ]
- >>388
中を展開すると理解してる。ちょっと違うかもしれないけど。 こうすると分かりやすいと思う。 p [1, 2, 3] p *[1, 2, 3]
- 390 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 16:53:46 ]
- グモ
- 391 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 16:56:04 ]
- >>389
ごめん、やっぱりよく分からない。 p *[1, 2, 3] は動くけど、 *[1, 2, 3] は動かない。どうなってるの? リファレンスのどこに載ってるか、教えてもらえるととてもうれしい。 www.ruby-lang.org/ja/man/html/
- 392 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 16:57:47 ]
- メソッド呼び出し のところ
- 393 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 17:40:45 ]
- >>392
> メソッド呼び出し のところ そういうことか!やっとわかった。ありがとう。 メソッド呼び出し - Rubyリファレンスマニュアル www.ruby-lang.org/ja/man/html/_A5E1A5BDA5C3A5C9B8C6A4D3BDD0A4B7.html ちなみに Pythonだと、* で配列の展開、** で連想配列の展開になる。 >>> def hoge(a, b, c): ... return a >>> hoge(*['a', 'b', 'c']) 'a' >>> hoge(**{'a':1, 'b':2, 'c':3}) 1 4. その他の制御フローツール www.python.jp/doc/release/tut/node6.html#SECTION006720000000000000000 なるほどRubyにもあったのか。 正直に言うと、Hash[], Enumerable#zip, Hash#values_at とか、全部知らなかった。 Rubyってホントにメソッドが山盛りだな。 まあ俺が無知なだけか。
- 394 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 17:42:26 ]
- >>391
>>392さんの通り。 www.ruby-lang.org/ja/man/html/_A5E1A5BDA5C3A5C9B8C6A4D3BDD0A4B7.html 多重代入でも最後のメンバー限定で展開できたり。 a, b, c = [1, *[2, 3]] p a, b, c www.ruby-lang.org/ja/man/html/_B1E9BBBBBBD2BCB0.html#a.c2.bf.bd.c5.c2.e5.c6.fe 多重代入の左辺と、メソッドの仮引数で意味が変わったりする謎アイテム。
- 395 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 17:44:06 ]
- ぐは。
- 396 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 18:00:39 ]
- 交代リストからハッシュを作れるRubyの仕様は、古き良き時代のLISPの香りが
するような。
- 397 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 18:21:30 ]
- 静的型の言語はお呼びじゃないか。
標準ライブラリのtemplateをひっかきまわすのは面倒そうなのでこれで。 int[string] request = ["hoge":1, "fuga":2, "piyo":3]; auto keys = ["hoge", "fuga"]; typeof(request) result; foreach(i; keys) if(i in request) result[i] = request[i];
- 398 名前:デフォルトの名無しさん [2009/03/02(月) 18:51:45 ]
- >>397
何かと思ったが、これは C++0x か! すげえ、こんな風に書けるようになるのか!
- 399 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:09:04 ]
- しかしロジックは>>378のforループと変わっていないんだな。
|

|