1 名前:デフォルトの名無しさん [2020/01/04(土) 01:15:34.30 ID:X7t3Qsuc0.net] プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ 質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。 Ruby on Rails については、WEBプログラミング板で 前スレ Ruby 初心者スレッド Part 65 https://mevius.5ch.net/test/read.cgi/tech/1545421414/ るりまサーチ (リファレンス検索) rurema.clear-code.com/ Rubyist Magazine - るびま jp.rubyist.net/magazine/ 逆引きRuby www.namaraii.com/rubytips/ Ruby コミュニティ公式 https://www.ruby-lang.org/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
116 名前:106 mailto:sage [2020/01/23(木) 09:48:33.02 ID:31WWjqFP0.net] VSCode の拡張機能、Live Server で見たら、画像も見れる! WEBrick のServer/Servlet と何が違うのかな?
117 名前:デフォルトの名無しさん (オイコラミネオ MMdb-TZXF) mailto:sage [2020/01/23(木) 19:32:54 ID:vOsDgWR6M.net] キャッシュコントロールヘッダじゃないの? 知らんけど。
118 名前:106 (ワッチョイ 5f2c-++Vr) mailto:sage [2020/01/24(金) 03:55:37 ID:L98ica9l0.net] ブラウザのF12 開発者ツールで指定できる! Chrome の開発者ツールのDisable cache で、画像が表示された! Edge では、開発者ツールのネットワークの、 常にサーバーから更新するとか、キャッシュのクリアとかかな? HTTP リクエスト/レスポンスのCache-Control ヘッダーも、関係ありそう
119 名前:デフォルトの名無しさん mailto:sage [2020/01/24(金) 12:41:39.57 ID:yedZaC1h0.net] プライベートブラウジング使え ブラウザ閉じればキャッシュやクッキーが消えて便利だぞ
120 名前:デフォルトの名無しさん mailto:sage [2020/01/24(金) 12:43:50.75 ID:2IgFvbdV0.net] HTTPリクエストを確認すればわかること 頼むからHTTPの基礎くらいは学んでくれ
121 名前:106 [2020/01/25(土) 00:10:52.07 ID:mLh1vP4R0.net] Windows 10 のローカルPC 上の、WEBrick のServer/Servlet で、 ブラウザでキャッシュ有りの時、画像が表示されないのは、なぜなのか? 結局、その理由が分からないまま 出来れば、キャッシュ有りで、画像が表示されてほしい
122 名前:デフォルトの名無しさん (ワッチョイ a7b0-Gc13) mailto:sage [2020/01/25(土) 03:58:37 ID:PRJ1sUmm0.net] 死ねばいい
123 名前:デフォルトの名無しさん (ワッチョイ a763-gk0v) [2020/01/25(土) 15:52:45 ID:WZ3Oswhu0.net] rubyXLでエクセルいじってるが 印刷範囲を設定したいときは、どのようにすればよいのでしょうか? いろいろ探しても見当たらず・・
124 名前:デフォルトの名無しさん (ワッチョイ 5fa5-V1vN) mailto:sage [2020/01/27(月) 17:12:09 ID:PTqFE7Wm0.net] ruby.hに#define memcpy(p1,p2,n) ruby_nonempty_memcpy(p1, p2, n)ってあるけど、 c++でstd::memcpyって使ってたらおかしなことにならんか?
125 名前:デフォルトの名無しさん (ワイーワ2 FF1f-FkkX) [2020/01/27(月) 17:24:08 ID:Xu7tzl7qF.net] srcとdstの範囲が重なってるんじゃね
126 名前:デフォルトの名無しさん (ワッチョイ 5fa5-V1vN) mailto:sage [2020/01/27(月) 18:36:35 ID:PTqFE7Wm0.net] ちょっと試したらおかしなことにならんかった
127 名前:デフォルトの名無しさん (ワッチョイ 7fda-LQfQ) mailto:sage [2020/01/28(火) 12:37:06 ID:2llLtotp0.net] Rubyってイベントハンドラを複数登録するタイプのクラスってどう書くのが一般的な流儀ですか? クラス継承したり特異メソッド使ったりといった書き方もありますが あまり異端過ぎなければlambdaを使うのが楽そうかなと思ってます # ディレクトリを巡回してファイルを探すクラス finder = FileFinder.new finder.on_dir_enter = lambda{|folder| puts "entered: #{folder}" } finder.on_dir_leave = lambda{|folder| puts "left: #{folder}" } finder.on_file_found = lambda{|file| puts "found: #{file}" } finder.start("./")
128 名前:デフォルトの名無しさん (ワッチョイ 5fd7-hH+D) [2020/01/28(火) 16:48:55 ID:viNuqCMy0.net] >>125 finder.on_dir_enter {|folder| puts "entered: #{folder}" } finder.on_dir_leave {|folder| puts "left: #{folder}" } finder.on_file_found {|file| puts "found: #{file}" } または finder.add_handlers( :dir_enter => proc { |folder| puts "entered: #{folder}" }, :dir_leave => proc {|folder| puts "left: #{folder}" }, :file_found => proc {|file| puts "found: #{file}" } ) イベントハンドラ系のAPI設計に関しては、 Ruby/Tk や Ruby-GNOME 等の GUI ツールキットを参考に
129 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 17:18:24.30 ID:nzUBCcWX0.net] 特に理由がなければブロック渡しが一般的 簡単なEvent Emitterを自作するかライブラリ使うか finder.on(:dir_enter) {|folder| puts "entered: #{folder}" } ライブラリでメジャーなのはwisperかActiveSupport::Notifications https://github.com/krisleech/wisper
130 名前:デフォルトの名無しさん (ワッチョイ ea2c-KoMo) mailto:sage [2020/01/29(水) 09:22:00 ID:AYOCyHQA0.net] >>121 rubyXL での印刷範囲の設定など https://qiita.com/cog1t0/items/85bf12f07b78e66802ff 「rubyxl 印刷」で検索!
131 名前:デフォルトの名無しさん (ワッチョイ ea2c-KoMo) [2020/01/29(水) 13:41:46 ID:AYOCyHQA0.net] Windows で、Ruby 2.5 にバージョンアップしたら、 SQLite3 のコンパイルが必要になった! でも漏れは、1, 2GB とサイズが大きい、MSYS2 を入れていないから、 win32ole モジュールで、ADODB でアクセス出来そうです。 ADODBは、Microsoft 製のドライバーなのか。 わざわざ、SQLite3用のドライバーも作ったのか?w win32oleは、Rubyの標準モジュールかw COM の種類が多い ruby -rwin32ole -e 'puts WIN32OLE_TYPE.progids.length' #=> 2521
132 名前:129 (ワッチョイ ea2c-KoMo) mailto:sage [2020/01/29(水) 14:03:59 ID:AYOCyHQA0.net] >>129 訂正 >ADODBは、Microsoft 製のドライバーなのか。 >わざわざ、SQLite3用のドライバーも作ったのか? SQLite3 などのODBC ドライバーは、Microsoft 製じゃない。 誰かが作ったものです
133 名前:デフォルトの名無しさん (ワッチョイ 7f05-QQjh) [2020/02/07(金) 23:21:28 ID:t9uaVZtz0.net] RubyのOcraについて質問です。 無限ループの中でタイマーカウント満了の度に処理を行って待ちに入るという動作のプログラムって実はEXE化できないという制約があったりしますでしょうか? また、その場合の解消方法とかをご存じの方、よろしくお願い申し上げます。
134 名前:デフォルトの名無しさん (オッペケ Sr0b-Hkqy) mailto:sage [2020/02/08(土) 10:32:17 ID:hHzEGlOhr.net] >>131 ない 何故ならevalするだけの簡単なコードですらexe化できるから
135 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 13:28:21.15 ID:9Nn74D/R0.net] OCRA の代わりに、Neri と言うのもあるみたい Neri https://github.com/nodai2hITC/neri/blob/master/README.ja.md
136 名前:デフォルトの名無しさん (ワッチョイ 9f7c-YOmB) [2020/02/10(月) 17:54:32 ID:nkCUteta0.net] 下記のコードでifの位置ってここでいいの。rubyの本の記述なんだけど。 2行目だけどifの方が左なんじゃないの?右でも行けるって事かな? def greeting(country) return 'countryを入力してください' if country.nil? if country == 'japan' 'こんにちは’ else 'hello' end end greeting(nil) greeting('japan')
137 名前:デフォルトの名無しさん (ワイーワ2 FFdf-VM48) [2020/02/10(月) 17:55:54 ID:JljXo4cdF.net] 後置
138 名前:デフォルトの名無しさん [2020/02/10(月) 18:40:17.86 ID:nkCUteta0.net] >>135 そうなの? 理由も聞きたい そういう仕様?って事?
139 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 20:46:54.23 ID:cKG4UD690.net] わからない時はまずリファレンス https://docs.ruby-lang.org/ja/master/doc/spec=2fcontrol.html#if ifは前置でも後置でもいける仕様 後置ifは正式にはif修飾子(if modifier)
140 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 21:36:49.68 ID:cuubi2Q/0.net] しかし、何がしたいのかはわからんコード。 文字列を返してるだけ?
141 名前:デフォルトの名無しさん (ワッチョイ 9f2c-ndoi) mailto:sage [2020/02/10(月) 23:17:58 ID:8D13KkA50.net] そりゃ、ユーザーからの入力値チェックは、必要 まあ、デフォルト値は、nil の代わりに、空文字列にしておく手もある
142 名前:デフォルトの名無しさん (ワッチョイ 3714-A9K6) mailto:sage [2020/02/11(火) 00:09:12 ID:dIRIcC/n0.net] >>136 英語勉強しろよ I don't know if it will rain tomorrow. (明日雨が降るかどうかわからない)
143 名前:デフォルトの名無しさん (アウアウウー Sa9b-YLe+) mailto:sage [2020/02/11(火) 07:38:12 ID:jcgFHncna.net] 後起きifはRubyの文法的にはかなり無理があって、その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文 Matz的によほどの拘りがあるんだろうけど、違和感を感じる>>134 のセンスはとても正しい
144 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 09:49:56.57 ID:GpQNLMm40.net] perl後継としては外せない
145 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 10:04:30.75 ID:Nq1ZGiCx0.net] perlなら当然でしょ rubyはそこを汲んでる
146 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 10:14:08.59 ID:dIRIcC/n0.net] Perlに不満ってあるの? どれだけある?
147 名前:デフォルトの名無しさん [2020/02/11(火) 12:56:14.55 ID:KtXysiBKF.net] >>141 Rubyのあちこちで見受けられるPerlの悪い所をわざわざパクったアホな例の一つだな
148 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 13:01:20.53 ID:v/oRLdRM0.net] >>141 >その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文 「全てが式」ってのはstatementとexpressionに明確な区別のある言語との対比で Rubyの特徴をわかりやすく説明するために使われてるだけ 式の一部どれをとっても全てが式になってるまともな言語があるわけない Rubyには後置以外の修飾子だってあるしstatementもある 中途半端な知識で勘違いしてドヤるのはやめよう
149 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 13:17:51.03 ID:D5vn67vCa.net] perl に
150 名前:比べて ruby の優っているところは? [] [ここ壊れてます]
151 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 13:22:48.99 ID:XWZwag4pr.net] if/unless, while/until, rescue
152 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 13:27:43.83 ID:eT6ZDI7H0.net] >>147 Perlにはオブジェクト指向ようの構文が後付で原始的なものしか搭載されてない。 アセンブラを駆使すれば何でもできるように、原始的な機能でも頑張れば 高度なオブジェクト指向機能を作ることは可能だが、 そのせいでいくつもの実装が生まれライブラリごとに使ってる 仕組みが異なり統一ができずに破綻してしまった。 Rubyは最初からオブジェクト指向
153 名前:デフォルトの名無しさん [2020/02/11(火) 14:28:51.94 ID:R1PPlg5z0.net] >>146 >式の一部どれをとっても全てが式になってるまともな言語があるわけない LISP, Haskell, ML, …etc >中途半端な知識で勘違いしてドヤるのはやめよう この記事の原著者も「中途半端な知識で勘違いしてドヤ」ってるのかなぁ ・Rubyによる関数型プログラミング xtmlab.com/misc/FPwithRuby.html なお、手続き型言語の大半が文と式を明確に分けている中で、 Ruby の「すべてが式」という思想はユニークであるが、 次世代言語 Rust でも同様な思想が採用された 以下は書籍「プログラミングRust」からの引用 > Rustはいわゆる式言語(expression language)の一つだ。 > つまり、Lispにまで遡る古い伝統に従い、すべてを式で行う。 中途半端な知識で勘違いしてドヤると恥をかくだけだよ
154 名前:デフォルトの名無しさん (ワッチョイ 9f01-OQuQ) mailto:sage [2020/02/11(火) 18:41:16 ID:v/oRLdRM0.net] >>150 >LISP, Haskell, ML, …etc おまえアホやろ Lispの閉じ括弧は式なのか? シングルクウォートは式なのか?Haskellのコロンは式なのか? if修飾子が式じゃない極めて特殊()な構文って主張はそれと同じレベルなんだけど >この記事の原著者も「中途半端な知識で勘違いしてドヤ」ってるのかなぁ 「あらゆるすべてが式である」のすべてに何が含まれて何が含まれないのか理解してるかどうかだよ 原著者が理解してるかどうかは知らないけどお前は間違いなく理解してない ついでに言っておくとRubyの「全ては式」が広まったのはDavid Flanaganが「The Ruby Programming Language」で他言語出身者にわかりやすく理解させるためにそれっぽいことを書いたのが理由
155 名前:デフォルトの名無しさん [2020/02/11(火) 22:59:40.20 ID:R1PPlg5z0.net] >>151 文節「すべてが式」に対する君の認識が、世間の一般常識から乖離していることを理解した
156 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 00:01:32.50 ID:39kCYFWR0.net] >>152 keywordやsymbolそれ自体が式なわけないだろ? それと同じことを主張してたの理解できたのかな? 制御構造のif式だって`if 式; end`全体で式として評価されるわけで ifだけやendだけが式になるわけじゃない if修飾子は`式 if 式`全体で式として評価されるわけで 後置の`if 式`だけで式になるわけじゃない でその一部を取り出して 「その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文」 って言っちゃうのがどれだけ的外れかって話な
157 名前:デフォルトの名無しさん (ワッチョイ a701-9iBN) [2020/02/12(水) 01:40:12 ID:3IloEGU30.net] 電卓の構文解析器を作ったことがあれば、だいぶご意見が変わるはず。
158 名前:デフォルトの名無しさん (ワッチョイ ef1d-sg8N) [2020/02/12(水) 01:51:46 ID:CB9IiDBv0.net] 実務経験1年で月収80万稼げるエンジニアになった理由 https://www.youtube.com/watch?v=DrbbyGsHQic 意識が低いエンジニアこそフリーランスになれ https://www.youtube.com/watch?v=nSEaAJlgjbQ フリーランスエンジニアの週3労働ってどんな感じ? https://www.youtube.com/watch?v=8yjoDCdbzMc ぼくがスキルのない社畜ならこうやって脱する https://www.youtube.com/watch?v=aae8xxbUlMM
159 名前: 初めて人を雇ったらもう二度とサラリーマンをやりたくないと思った話 https://www.youtube.com/watch?v=U0OCGRVLFsM プログラミングは文系でも余裕で出来ます!理由を現役プログラマーが解説 https://www.youtube.com/watch?v=iBOeiSKBIW8 貧乏人こそ社会不適合者 https://www.youtube.com/watch?v=O3BT72BIBJI 元ド貧乏が教える】貧乏を抜け出すための2つの考え方 https://www.youtube.com/watch?v=IRrCgTy3ckc より良いオファー貰ってるのに転職しないとか何考えてるの? https://www.youtube.com/watch?v=i0J6uRhlj7o [] [ここ壊れてます]
160 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 02:31:04.61 ID:zXn0/Xf90.net] >>153 もう黙ったほうがええで。 アホが漏れとる。
161 名前:150および151 (ワッチョイ 7274-XNsy) [2020/02/12(水) 03:15:58 ID:1hwSKrXM0.net] >>153 >でその一部を取り出して >「その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文」 >って言っちゃうのがどれだけ的外れかって話な 自分は>>141 ではないが、いったいぜんたい何を話したいのか訳がわからんよ
162 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 06:32:46.81 ID:m8mhjAm70.net] >>155 グロ
163 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 09:42:28.21 ID:gfctBwevM.net] 「Rubyでは全てが式だ」というとき、ステートメント(文)と式の区別がないことを意味するのが普通だ 言語によってはメソッドやクラスの定義も普通の式だったりするが、Rubyでそう思っている奴はいないだろう しかしRubyではステートメントと式の区別がないというのは厳密には正しくない 文法定義のソースを見れば明らかだが、それが後置構文の存在のためであるのは事実
164 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 22:16:17.93 ID:Pa88PYmd0.net] def foo(arg) arg + 1 end(99) #=> 100 動かない
165 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 10:51:24.11 ID:6MxuLkX50.net] p send(def foo(a); a + 1;end, 99) # => 100
166 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 21:55:21.77 ID:i9bfivOD0.net] お、うーむ...なるほど
167 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 22:02:31.32 ID:TNGg/IHkr.net] p def foo(a) a + 1 end.then{|s| method(s)[99]} # => 100
168 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 23:08:11.62 ID:0ZbbVgVA0.net] つまり、扱いは同じではない、ということかな?w
169 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 23:20:32.77 ID:oR70BErs0.net] foo = -> (arg) { arg + 1 }.( 99 ) #=> 100
170 名前:デフォルトの名無しさん [2020/02/14(金) 12:22:11.03 ID:+9NDg3r60.net] ( ) で囲んで式にすれば、 JavaScript のIIFE (Immediately Invoked Function Expression; 即時実行関数式)みたいに、無名関数にできた! ( -> (arg) { puts arg + 1 } ).( 99 ) #=> 100
171 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 12:36:32.48 ID:+9NDg3r60.net] msys2 無しのWindows 10, Ruby 2.5 で、 WEBrick::HTTPServlet::CGIHandler は使えない! ERROR CGIHandler: C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:63:in `iterate_msys_paths': undefined method `split' for nil:NilClass (NoMethodError) エラーログに、enable_dll_search_paths とあるから、dll でも使うのかな?
172 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 17:39:20.53 ID:EOtBZfN80.net] >>166 >( ) で囲んで式にすれば、 括弧なくても定義したlambdaが返される .()でそのlambdaのcallメソッドを呼び出してるだけ -> (arg) { arg + 1 }.(99) でも -> (arg) { arg + 1 }[99] でも -> (arg) { arg + 1 }.call 99 でも同じ ちなみにJSのvar foo = (x)=> x+1 みたいなのは関数に名前はついてないので無名関数だぞ rubyで foo = -> (arg) { arg + 1 } と書いても 無名のlambdaをfooという変数に入れてるだけで lambda自身に名前がつくわけではない
173 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 13:46:02.32 ID:BIOI8zPQ0.net] >>167 ENV['PATH'].split(";")が失敗するってmsys2関係なくなかなかレアな環境だと思うが 環境変数をクリアしたりしてるのかい?
174 名前:167 [2020/02/15(土) 17:09:24.91 ID:8drC8DpT0.net] msys2 を入れずに、Ruby を使っているから、 コンパイルできないし、Windows 10 のネイティブDLL を使えない Ruby 2.5 で、SQLite も使えなくなったw WEBrick は、Rubyで実装されているから、msys2 無しでも動くと思ったけど、 WEBrick::HTTPServlet::CGIHandler で、ネイティブDLLを使っているのだろう rubyist magazine を冒頭から読み始めたが、読み応えある!
175 名前:デフォルトの名無しさん (ワッチョイ 335f-JhxJ) mailto:sage [2020/02/16(日) 02:30:58 ID:A+9IORaN0.net] >>170 msys2_installation.rb:63にmsys2関係ないって https://github.com/oneclick/rubyinstaller2/blob/rubyinstaller-2.5.0-1/lib/ruby_installer/build/msys2_installation.rb#L63 これが失敗するのは環境変数がおかしいか、上書きしているか それともENVを再定義しているくらいしか思いつかない
176 名前:167 [2020/02/16(日) 19:14:49.59 ID:5EL9p8ON0.net] 漏れは、Windows 10,Ruby 2.5 で、 Run ‘ridk install’ to install MSYS2 and development toolchain. も、チェックしていないし、 MSYS2 の開発ツールと、MINGW のコンパイラもインストールしていないから Rubyの環境構築(Windows10編) https://www.kenschool.jp/blog/?p=3898 エラーログ C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:63:in `iterate_msys_paths': undefined method `split' for nil:NilClass (NoMethodError)\r\n\t from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:76:in `msys_path'\r\n\t from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:89:in `mingw_bin_path'\r\n\t from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:99:in `enable_dll_search_paths'\r\n\t from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/singleton.rb:27:in `enable_dll_search_paths'\r\n\t from C:/Ruby25-x64/lib/ruby/2.5.0/rubygems/defaults/operating_system.rb:3:in `<top (required)>'\r\n\t from C:/Ruby25-x64/lib/ruby/2.5.0/rubygems.rb:1383:in `require'\r\n\t from C:/Ruby25-x64/lib/ruby/2.5.0/rubygems.rb:1383:in `<top (required)>'\r\n\t from <internal:gem_prelude>:2:in `require'\r\n\t from <internal:gem_prelude>:2:in `<internal:gem_prelude>'\r\n
177 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 01:04:16.59 ID:gpbv7rcq0.net] あー、WebrickのCGIHandlerはCGIPathEnvの関係でENV["PATH"]がnilになりうるのか WEBrick::HTTPServer.newに渡すハッシュにCGIPathEnv: ""を加えとけばいいはず
178 名前:167 mailto:sage [2020/02/17(月) 01:35:30.73 ID:A9t7x7q20.net] ありがとう。 オプションに、:CGIPathEnv => '' を加えたら、正常に動いた! すごい実力じゃん! ソースコードを追っていったの? opts = { :CGIInterpreter => "C:/Ruby25-x64/bin/ruby.exe", :CGIPathEnv => '', # msys2 のエラーを避けるために、必要! :DocumentRoot => './', # この指定が必要! :BindAddress => '127.0.0.1', :Port => 20080 } srv = WEBrick::HTTPServer.new( opts )
179 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 05:37:18.50 ID:SykEsoD4r.net] なんかムカつく
180 名前:デフォルトの名無しさん (ワッチョイ d62d-qw96) [2020/02/17(月) 15:17:53 ID:9CP/4dwv0.net] 新しくて安い本が出たので、頭の体操にRubyの勉強を始めたところなんだけどさあ よくネット上に、「Railsの本をやってからRubyの勉強をした」みたいな人がいるのはどういうことなの? RailsってRubyが出来ないと何も出来ない訳でもないの???
181 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 15:33:27.23 ID:qj5C8HtX0.net] 普通にプログラミングできる人にとっては言語の違いなんて些細なもので いちから作るのならともかく、そこいらにあるRailsのコードや自動生成されたものを 見ればそこからRubyという言語を推測で理解できるんだよ。 このコードがクラス定義だな。Rubyではこう書くんだなって わからなければそこだけググればいい Railsはやり方というものがあるので、それに合わせるように Railsの本を見て流れを把握する必要がある。 検索は断片を見つけるのはキーワードから簡単に見つけられるが 流れはそうはいかない。
182 名前:だいたいの本はページの最初から流れを そのまま書いてあるから、本でざっと勉強するのが最初のうちは手っ取り早い [] [ここ壊れてます]
183 名前:デフォルトの名無しさん (ワッチョイ d62d-qw96) [2020/02/17(月) 18:20:35 ID:9CP/4dwv0.net] そういうことか 言語だけ先にやると変な癖がついたりもするし、演習ファーストの学習も結構いいかもな
184 名前:デフォルトの名無しさん (ワッチョイ b7d2-Htok) [2020/02/17(月) 18:45:44 ID:wxeqwMT50.net] 日本語の勉強がしたいと言ったら 舞城王太郎の小説を読めと言われた気分
185 名前:デフォルトの名無しさん (ワッチョイ 122c-LiuO) mailto:sage [2020/02/17(月) 19:30:14 ID:A9t7x7q20.net] たぶん、すでに多言語を知ってる人だろう 入門書の次のレベルの、新しい本が出た! Ruby on Rails 6 実践ガイド、黒田努、2019/12/20 実践Ruby on Rails 4: 現場のプロから学ぶ本格Webプログラミング、黒田努、2014 この本を書き換えたもの 無料のRails チュートリアルよりは簡単 Windows プロ版のDocker が不安定だから、Virtual Box, Ubuntu 18.04 でやってる!
186 名前:デフォルトの名無しさん (ワイーワ2 FF6a-BDVY) [2020/02/18(火) 12:16:06 ID:r+eOvEZJF.net] またカタワを量産するつもりか RailsRubyの将来は暗いな
187 名前:デフォルトの名無しさん (ワッチョイ ff2c-lQWV) [2020/02/25(火) 19:09:01 ID:Ykw6mmDG0.net] 「aabc → bc」みたいに、先頭から特定の文字が連続するとき、それを除去するには、どう書く? 正規表現を使ったものと、使っていない場合の両方 str = "aabc" # 先頭から続く、a を除去する while str.start_with? "a" # 先頭文字が、a なら str.slice! 0 # 先頭文字を削除する end p str #=> "bc"
188 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 20:42:26.89 ID:uCkT0+w20.net] そりゃ正規表現のステートマシン通りに書くでしょ
189 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 22:00:57.29 ID:uBU1PACqr.net] >>182 puts str[/\Aa*\K.*/] # => bc
190 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 22:07:44.86 ID:uBU1PACqr.net] >>182 puts str[str.size.times.find{|i| str[i] != ?a}..] # => bc
191 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 22:22:39.72 ID:oSeHo6cg0.net] >>182 def remove_consecutive(string) string.sub(/^(.)¥1{1,}(.*)$/) {|_| remove_consecutive($2)} end remove_consecutive("aaaabbbbbbccab") #=> “ab” remove_consecutive("1112234") #=> "34"
192 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 22:59:04.49 ID:/XslCVsc0.net] 本当に文字列から連続部分を除去したいのか、 連続部分の後ろが取り出せればいいのか
193 名前:182 (ワッチョイ ff2c-lQWV) mailto:sage [2020/02/25(火) 23:54:26 ID:Ykw6mmDG0.net] 元々は「0082 → 82」みたいな文字列の先頭から続く、0 を除去したかった。 先頭以外のものは、除去しなくてよい こういうメソッドが無いか、探してみたけど見つからなかった レシーバーの破壊的な変更をしてもよいし、別の文字列を作って返すものでもよい
194 名前:182 (ワッチョイ ca2c-rVtL) mailto:sage [2020/02/26(水) 00:52:55 ID:TmIxTRKQ0.net] 文字列の先頭から続く、特定の文字を除去する 1文字でも除去するし、連続するかぎり除去するが、 先頭以外のものは、除去しなくてよい a を除去する場合 abc → bc aaXaa → Xaa
195 名前:デフォルトの名無しさん (ワッチョイ 8a01-k1AF) mailto:sage [2020/02/26(水) 01:11:17 ID:sMj0eedP0.net] >>188 >元々は「0082 → 82」みたいな文字列の先頭から続く、0 を除去したかった。 “0082”.to_i.to_sでよくね? なんかこのパターン数ヶ月前にも見たような気がするな >>189 def remove_leading_chars(string, char) string.each_char.drop_while{|c| c == char}.join end remove_leading_chars(“0000123", “0”) #=> "123" remove_leading_chars(“abc", “a”) #=> "bc" remove_leading_chars(“aaXaa", “a”) #=> "
196 名前:Xaa" [] [ここ壊れてます]
197 名前:182 mailto:sage [2020/02/26(水) 04:46:15.55 ID:TmIxTRKQ0.net] >“0082”.to_i.to_sでよくね? 長い文字列だと、数値化できない言語もあるから、 汎用的に作れないかなと思って
198 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 08:06:23.34 ID:PiyizPRV0.net] だからオートマトンで作れって言ってんじゃん ttps://image.slidesharecdn.com/1-140715084054-phpapp01/95/1-11-638.jpg
199 名前:デフォルトの名無しさん (ワッチョイ 0314-IyPa) mailto:sage [2020/02/26(水) 08:22:48 ID:kXv4PxDr0.net] オートマトンってなんで羊なんだろう? 自動的に毛を刈って自動的に料理されるのか?
200 名前:デフォルトの名無しさん (ワッチョイ 6b01-nhpA) mailto:sage [2020/02/26(水) 08:29:53 ID:bDSWeqSr0.net] オートマンだと思ってた インド哲学かよ
201 名前:デフォルトの名無しさん (ワッチョイ 0314-IyPa) mailto:sage [2020/02/26(水) 08:36:52 ID:kXv4PxDr0.net] 嘔吐マトン
202 名前:デフォルトの名無しさん [2020/02/26(水) 12:11:34.52 ID:GrI3XnzJ0.net] >>189 def ltrim(s, c) s[/^#{c}*/] = "" s end p ltrim("aaaabcaabc", 'a') "bcaabc"
203 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 23:09:06.75 ID:TmIxTRKQ0.net] Ruby on Rails 6 実践ガイド、黒田努、2019/12/20 Ruby on Rails 6 超入門、掌田津耶乃、2020/2/21 巨匠・掌田も、Rails 6 に参戦! 後は、山田祥寛・WINGSプロジェクトが、どうするか?
204 名前:デフォルトの名無しさん [2020/02/27(木) 15:17:58.32 ID:G6pyHvdgF.net] 掌田の本は要らん
205 名前:デフォルトの名無しさん (ワッチョイ 4aa5-SiQa) mailto:sage [2020/02/28(金) 09:49:01 ID:tB/cuWAa0.net] 掌田津耶乃って何者? (Late 2012) https://egg.5ch.net/test/read.cgi/mac/1349360916/ 巨匠か? Mac凋落と共に仕事を失った人間、とか書かれてんぞ
206 名前:デフォルトの名無しさん (ワッチョイ 4aa5-SiQa) mailto:sage [2020/02/28(金) 09:53:35 ID:tB/cuWAa0.net] 掌田津耶乃って何者? https://mentai.5ch.net/test/read.cgi/pc/971599471/ macの賤民思想に凝り固まった人間? そんな物体なら要らないな
207 名前:197 (ワッチョイ ca2c-rVtL) [2020/02/28(金) 13:58:28 ID:GfVfgYuK0.net] 多言語の3強が、掌田津耶乃・山田祥寛(WINGSプロジェクト)・柴田望洋。 他に、スッキリ・やさしい・猫でも・独習など 掌田は、その中でも断トツ! 多言語の入門書・フレームワーク・ゲームエンジンなど、 ここ数年で、20冊とかある 世界的に見ても、断トツ!
208 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 14:40:57.13 ID:LkDsYiUy0.net] 何か後ろの二人が気の毒
209 名前:デフォルトの名無しさん (ワッチョイ 9e2d-9Aak) [2020/02/28(金) 15:39:11 ID:Y4GSbUWj0.net] Rubyはもう本で勉強するのは古い 今は迫 佑樹とかあおいとかのオンラインコースで勉強する時代だよ、
210 名前:デフォルトの名無しさん (ワッチョイ 8a01-k1AF) mailto:sage [2020/02/29(土) 02:55:28 ID:udUacP9j0.net] 山田祥寛は10年近く前C#でよくお世話になった 他言語から来た入門者に程よくわかりやすい本を書く印象 柴田望洋はC言語系で何冊か読んだが 内容がすごく簡潔で短い時間でまとめ的な知識を頭に入れたり 特定のトピックを復習したいときには有用 (ただ今ならWebサイトで代用可能) 掌田津耶乃・・・ 本屋で間違って手にしてもパラっと読めば速攻本棚に戻すやつ 似たような浅めの入門本著者だと クジラ飛行机のやつは実践的なやつが多くて悪くないと思う
211 名前:197 (ワッチョイ ca2c-rVtL) [2020/02/29(土) 23:32:52 ID:6IdZMwnf0.net] なでしこの作者・クジラ飛行机は、 近年、Python から、多言語の作者として乱入してきた なでしこだけでは食えないし、やむを得ない方向転換w 巨匠の柴田望洋は「新・明解C言語」のイメージだけど、近年、多言語に参入した
212 名前:◆QZaw55cn4c (ワッチョイ 2aaa-9l6Y) mailto:sage [2020/02/29(土) 23:43:57 ID:c0ztbNyQ0.net] >>204 新独習c# は旧独習ハーバートシルトと比べてどうでしょうか? 新独習Java は、旧独習が史上稀に見る惨憺たる出来だったことから、新独習はよくなるしかないと予測しています あと、旧独習を高く評価している私としても新独習C++ については興味がありますね
213 名前:197 mailto:sage [2020/03/01(日) 00:44:56.42 ID:NSpMdQYF0.net] さすがに日本人で、シルトと比べられる著者は、いないだろ たいてい読み応えがあるのは、Effective シリーズなどの外人著者
214 名前:デフォルトの名無しさん [2020/03/01(日) 10:00:51.93 ID:JWAFHnbAM.net] しつもんです haskellだったら [(x,y,z) | x <- [1..9], y <- [1..9], z <- [1..9], x * y * z == 24] こう書けるものはrubyではせいぜい p [*1..9].repeated_permutation(3).select {|a| a.sum == 24} こう書くしかありませんか?簡潔に表現したいです さらにhaskellでは [(x,y,z) | x <- [1..9], y <- [1..8], z <- [1..7], x * y * z == 24] などと書けるので柔軟ですがその場合rubyなら p (1..9).map {|x| (1..8).map {|y| (1..7).map {|z| [x,y,z]}}}.flatten(2).select {|a| a.sum == 24} こう書くしかありませんか?簡潔に表現したいです
215 名前:デフォルトの名無しさん (ワッチョイ 0314-IyPa) mailto:sage [2020/03/01(日) 10:43:49 ID:n6wzTSL90.net] > haskellだったら > [(x,y,z) | x <- [1..9], y <- [1..9], z <- [1..9], x * y * z == 24] > こう書けるものは haskell: 66文字 > rubyではせいぜい > p [*1..9].repeated_permutation(3).select {|a| a.sum == 24} > こう書くしかありませんか?簡潔に表現したいです ruby: 58文字 Rubyの方が簡潔です
216 名前:デフォルトの名無しさん (ワッチョイ 6f5f-jGfF) mailto:sage [2020/03/01(日) 11:35:40 ID:qmcGlirD0.net] > p (1..9).map {|x| (1..8).map {|y| (1..7).map {|z| [x,y,z]}}}.flatten(2).select {|a| a.sum == 24} p [[*1..9], [*1..8], [*1..7]].then{|x, *a| x.product(*a)}.select{|a| a.sum == 24} p [*1..9].product([*1..8],[*1..7]).select{|a| a.sum == 24} 好きな方を ところで、そのHaskellコードにはp相当が無いように見えますが Haskellってprintしなくていいんですか?