プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ
質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 65
https://mevius.5ch.net/test/read.cgi/tech/1545421414/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Ruby 初心者スレッド Part 66
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2a2c-RM0q)
2020/01/04(土) 01:15:34.30ID:X7t3Qsuc0158デフォルトの名無しさん (ワッチョイ b252-E40k)
2020/02/12(水) 06:32:46.81ID:m8mhjAm70 >>155
グロ
グロ
159デフォルトの名無しさん (ドコグロ MM32-H6bD)
2020/02/12(水) 09:42:28.21ID:gfctBwevM 「Rubyでは全てが式だ」というとき、ステートメント(文)と式の区別がないことを意味するのが普通だ
言語によってはメソッドやクラスの定義も普通の式だったりするが、Rubyでそう思っている奴はいないだろう
しかしRubyではステートメントと式の区別がないというのは厳密には正しくない
文法定義のソースを見れば明らかだが、それが後置構文の存在のためであるのは事実
言語によってはメソッドやクラスの定義も普通の式だったりするが、Rubyでそう思っている奴はいないだろう
しかしRubyではステートメントと式の区別がないというのは厳密には正しくない
文法定義のソースを見れば明らかだが、それが後置構文の存在のためであるのは事実
160デフォルトの名無しさん (ワッチョイ de8c-gRil)
2020/02/12(水) 22:16:17.93ID:Pa88PYmd0 def foo(arg)
arg + 1
end(99) #=> 100
動かない
arg + 1
end(99) #=> 100
動かない
161デフォルトの名無しさん (ワッチョイ 335f-JhxJ)
2020/02/13(木) 10:51:24.11ID:6MxuLkX50 p send(def foo(a); a + 1;end, 99) # => 100
162デフォルトの名無しさん (ワッチョイ de8c-gRil)
2020/02/13(木) 21:55:21.77ID:i9bfivOD0 お、うーむ...なるほど
163デフォルトの名無しさん (オッペケ Src7-gtE8)
2020/02/13(木) 22:02:31.32ID:TNGg/IHkr p def foo(a)
a + 1
end.then{|s| method(s)[99]}
# => 100
a + 1
end.then{|s| method(s)[99]}
# => 100
164デフォルトの名無しさん (ワッチョイ 0233-Rcr8)
2020/02/13(木) 23:08:11.62ID:0ZbbVgVA0 つまり、扱いは同じではない、ということかな?w
165デフォルトの名無しさん (ワッチョイ e67d-dJav)
2020/02/13(木) 23:20:32.77ID:oR70BErs0 foo = -> (arg) {
arg + 1
}.( 99 ) #=> 100
arg + 1
}.( 99 ) #=> 100
166デフォルトの名無しさん (ワッチョイ 122c-LiuO)
2020/02/14(金) 12:22:11.03ID:+9NDg3r60 ( ) で囲んで式にすれば、
JavaScript のIIFE (Immediately Invoked Function Expression; 即時実行関数式)みたいに、無名関数にできた!
( -> (arg) {
puts arg + 1
} ).( 99 ) #=> 100
JavaScript のIIFE (Immediately Invoked Function Expression; 即時実行関数式)みたいに、無名関数にできた!
( -> (arg) {
puts arg + 1
} ).( 99 ) #=> 100
167デフォルトの名無しさん (ワッチョイ 122c-LiuO)
2020/02/14(金) 12:36:32.48ID:+9NDg3r60 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 でも使うのかな?
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 でも使うのかな?
168デフォルトの名無しさん (ワッチョイ d201-b83C)
2020/02/14(金) 17:39:20.53ID:EOtBZfN80 >>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自身に名前がつくわけではない
>( ) で囲んで式にすれば、
括弧なくても定義した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自身に名前がつくわけではない
169デフォルトの名無しさん (ワッチョイ 335f-JhxJ)
2020/02/15(土) 13:46:02.32ID:BIOI8zPQ0170167 (ワッチョイ 122c-LiuO)
2020/02/15(土) 17:09:24.91ID:8drC8DpT0 msys2 を入れずに、Ruby を使っているから、
コンパイルできないし、Windows 10 のネイティブDLL を使えない
Ruby 2.5 で、SQLite も使えなくなったw
WEBrick は、Rubyで実装されているから、msys2 無しでも動くと思ったけど、
WEBrick::HTTPServlet::CGIHandler で、ネイティブDLLを使っているのだろう
rubyist magazine を冒頭から読み始めたが、読み応えある!
コンパイルできないし、Windows 10 のネイティブDLL を使えない
Ruby 2.5 で、SQLite も使えなくなったw
WEBrick は、Rubyで実装されているから、msys2 無しでも動くと思ったけど、
WEBrick::HTTPServlet::CGIHandler で、ネイティブDLLを使っているのだろう
rubyist magazine を冒頭から読み始めたが、読み応えある!
171デフォルトの名無しさん (ワッチョイ 335f-JhxJ)
2020/02/16(日) 02:30:58.30ID:A+9IORaN0 >>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を再定義しているくらいしか思いつかない
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を再定義しているくらいしか思いつかない
172167 (ワッチョイ 122c-LiuO)
2020/02/16(日) 19:14:49.59ID:5EL9p8ON0 漏れは、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
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
173デフォルトの名無しさん (ワッチョイ 335f-JhxJ)
2020/02/17(月) 01:04:16.59ID:gpbv7rcq0 あー、WebrickのCGIHandlerはCGIPathEnvの関係でENV["PATH"]がnilになりうるのか
WEBrick::HTTPServer.newに渡すハッシュにCGIPathEnv: ""を加えとけばいいはず
WEBrick::HTTPServer.newに渡すハッシュにCGIPathEnv: ""を加えとけばいいはず
174167 (ワッチョイ 122c-LiuO)
2020/02/17(月) 01:35:30.73ID:A9t7x7q20 ありがとう。
オプションに、:CGIPathEnv => '' を加えたら、正常に動いた!
すごい実力じゃん!
ソースコードを追っていったの?
opts = { :CGIInterpreter => "C:/Ruby25-x64/bin/ruby.exe",
:CGIPathEnv => '', # msys2 のエラーを避けるために、必要!
:DocumentRoot => './', # この指定が必要!
:BindAddress => '127.0.0.1', :Port => 20080 }
srv = WEBrick::HTTPServer.new( opts )
オプションに、:CGIPathEnv => '' を加えたら、正常に動いた!
すごい実力じゃん!
ソースコードを追っていったの?
opts = { :CGIInterpreter => "C:/Ruby25-x64/bin/ruby.exe",
:CGIPathEnv => '', # msys2 のエラーを避けるために、必要!
:DocumentRoot => './', # この指定が必要!
:BindAddress => '127.0.0.1', :Port => 20080 }
srv = WEBrick::HTTPServer.new( opts )
175デフォルトの名無しさん (オッペケ Src7-gtE8)
2020/02/17(月) 05:37:18.50ID:SykEsoD4r なんかムカつく
176デフォルトの名無しさん (ワッチョイ d62d-qw96)
2020/02/17(月) 15:17:53.59ID:9CP/4dwv0 新しくて安い本が出たので、頭の体操にRubyの勉強を始めたところなんだけどさあ
よくネット上に、「Railsの本をやってからRubyの勉強をした」みたいな人がいるのはどういうことなの?
RailsってRubyが出来ないと何も出来ない訳でもないの???
よくネット上に、「Railsの本をやってからRubyの勉強をした」みたいな人がいるのはどういうことなの?
RailsってRubyが出来ないと何も出来ない訳でもないの???
177デフォルトの名無しさん (ワッチョイ b714-+5Ha)
2020/02/17(月) 15:33:27.23ID:qj5C8HtX0 普通にプログラミングできる人にとっては言語の違いなんて些細なもので
いちから作るのならともかく、そこいらにあるRailsのコードや自動生成されたものを
見ればそこからRubyという言語を推測で理解できるんだよ。
このコードがクラス定義だな。Rubyではこう書くんだなって
わからなければそこだけググればいい
Railsはやり方というものがあるので、それに合わせるように
Railsの本を見て流れを把握する必要がある。
検索は断片を見つけるのはキーワードから簡単に見つけられるが
流れはそうはいかない。だいたいの本はページの最初から流れを
そのまま書いてあるから、本でざっと勉強するのが最初のうちは手っ取り早い
いちから作るのならともかく、そこいらにあるRailsのコードや自動生成されたものを
見ればそこからRubyという言語を推測で理解できるんだよ。
このコードがクラス定義だな。Rubyではこう書くんだなって
わからなければそこだけググればいい
Railsはやり方というものがあるので、それに合わせるように
Railsの本を見て流れを把握する必要がある。
検索は断片を見つけるのはキーワードから簡単に見つけられるが
流れはそうはいかない。だいたいの本はページの最初から流れを
そのまま書いてあるから、本でざっと勉強するのが最初のうちは手っ取り早い
178デフォルトの名無しさん (ワッチョイ d62d-qw96)
2020/02/17(月) 18:20:35.95ID:9CP/4dwv0 そういうことか
言語だけ先にやると変な癖がついたりもするし、演習ファーストの学習も結構いいかもな
言語だけ先にやると変な癖がついたりもするし、演習ファーストの学習も結構いいかもな
179デフォルトの名無しさん (ワッチョイ b7d2-Htok)
2020/02/17(月) 18:45:44.78ID:wxeqwMT50 日本語の勉強がしたいと言ったら
舞城王太郎の小説を読めと言われた気分
舞城王太郎の小説を読めと言われた気分
180デフォルトの名無しさん (ワッチョイ 122c-LiuO)
2020/02/17(月) 19:30:14.53ID:A9t7x7q20 たぶん、すでに多言語を知ってる人だろう
入門書の次のレベルの、新しい本が出た!
Ruby on Rails 6 実践ガイド、黒田努、2019/12/20
実践Ruby on Rails 4: 現場のプロから学ぶ本格Webプログラミング、黒田努、2014
この本を書き換えたもの
無料のRails チュートリアルよりは簡単
Windows プロ版のDocker が不安定だから、Virtual Box, Ubuntu 18.04 でやってる!
入門書の次のレベルの、新しい本が出た!
Ruby on Rails 6 実践ガイド、黒田努、2019/12/20
実践Ruby on Rails 4: 現場のプロから学ぶ本格Webプログラミング、黒田努、2014
この本を書き換えたもの
無料のRails チュートリアルよりは簡単
Windows プロ版のDocker が不安定だから、Virtual Box, Ubuntu 18.04 でやってる!
181デフォルトの名無しさん (ワイーワ2 FF6a-BDVY)
2020/02/18(火) 12:16:06.30ID:r+eOvEZJF またカタワを量産するつもりか
RailsRubyの将来は暗いな
RailsRubyの将来は暗いな
182デフォルトの名無しさん (ワッチョイ ff2c-lQWV)
2020/02/25(火) 19:09:01.56ID:Ykw6mmDG0 「aabc → bc」みたいに、先頭から特定の文字が連続するとき、それを除去するには、どう書く?
正規表現を使ったものと、使っていない場合の両方
str = "aabc"
# 先頭から続く、a を除去する
while str.start_with? "a" # 先頭文字が、a なら
str.slice! 0 # 先頭文字を削除する
end
p str #=> "bc"
正規表現を使ったものと、使っていない場合の両方
str = "aabc"
# 先頭から続く、a を除去する
while str.start_with? "a" # 先頭文字が、a なら
str.slice! 0 # 先頭文字を削除する
end
p str #=> "bc"
183デフォルトの名無しさん (ワッチョイ ffa5-1Vd5)
2020/02/25(火) 20:42:26.89ID:uCkT0+w20 そりゃ正規表現のステートマシン通りに書くでしょ
184デフォルトの名無しさん (オッペケ Sr07-VXi+)
2020/02/25(火) 22:00:57.29ID:uBU1PACqr185デフォルトの名無しさん (オッペケ Sr07-VXi+)
2020/02/25(火) 22:07:44.86ID:uBU1PACqr186デフォルトの名無しさん (ワッチョイ ff01-pEhb)
2020/02/25(火) 22:22:39.72ID:oSeHo6cg0 >>182
def remove_consecutive(string)
string.sub(/^(.)¥1{1,}(.*)$/) {|_| remove_consecutive($2)}
end
remove_consecutive("aaaabbbbbbccab") #=> “ab”
remove_consecutive("1112234") #=> "34"
def remove_consecutive(string)
string.sub(/^(.)¥1{1,}(.*)$/) {|_| remove_consecutive($2)}
end
remove_consecutive("aaaabbbbbbccab") #=> “ab”
remove_consecutive("1112234") #=> "34"
187デフォルトの名無しさん (ワッチョイ 6f8c-zTrs)
2020/02/25(火) 22:59:04.49ID:/XslCVsc0 本当に文字列から連続部分を除去したいのか、
連続部分の後ろが取り出せればいいのか
連続部分の後ろが取り出せればいいのか
188182 (ワッチョイ ff2c-lQWV)
2020/02/25(火) 23:54:26.45ID:Ykw6mmDG0 元々は「0082 → 82」みたいな文字列の先頭から続く、0 を除去したかった。
先頭以外のものは、除去しなくてよい
こういうメソッドが無いか、探してみたけど見つからなかった
レシーバーの破壊的な変更をしてもよいし、別の文字列を作って返すものでもよい
先頭以外のものは、除去しなくてよい
こういうメソッドが無いか、探してみたけど見つからなかった
レシーバーの破壊的な変更をしてもよいし、別の文字列を作って返すものでもよい
189182 (ワッチョイ ca2c-rVtL)
2020/02/26(水) 00:52:55.60ID:TmIxTRKQ0 文字列の先頭から続く、特定の文字を除去する
1文字でも除去するし、連続するかぎり除去するが、
先頭以外のものは、除去しなくてよい
a を除去する場合
abc → bc
aaXaa → Xaa
1文字でも除去するし、連続するかぎり除去するが、
先頭以外のものは、除去しなくてよい
a を除去する場合
abc → bc
aaXaa → Xaa
190デフォルトの名無しさん (ワッチョイ 8a01-k1AF)
2020/02/26(水) 01:11:17.25ID:sMj0eedP0 >>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”) #=> "Xaa"
>元々は「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”) #=> "Xaa"
191182 (ワッチョイ ca2c-rVtL)
2020/02/26(水) 04:46:15.55ID:TmIxTRKQ0 >“0082”.to_i.to_sでよくね?
長い文字列だと、数値化できない言語もあるから、
汎用的に作れないかなと思って
長い文字列だと、数値化できない言語もあるから、
汎用的に作れないかなと思って
192デフォルトの名無しさん (ワッチョイ 4aa5-SiQa)
2020/02/26(水) 08:06:23.34ID:PiyizPRV0 だからオートマトンで作れって言ってんじゃん
ttps://image.slidesharecdn.com/1-140715084054-phpapp01/95/1-11-638.jpg
ttps://image.slidesharecdn.com/1-140715084054-phpapp01/95/1-11-638.jpg
193デフォルトの名無しさん (ワッチョイ 0314-IyPa)
2020/02/26(水) 08:22:48.67ID:kXv4PxDr0 オートマトンってなんで羊なんだろう?
自動的に毛を刈って自動的に料理されるのか?
自動的に毛を刈って自動的に料理されるのか?
194デフォルトの名無しさん (ワッチョイ 6b01-nhpA)
2020/02/26(水) 08:29:53.13ID:bDSWeqSr0 オートマンだと思ってた
インド哲学かよ
インド哲学かよ
195デフォルトの名無しさん (ワッチョイ 0314-IyPa)
2020/02/26(水) 08:36:52.65ID:kXv4PxDr0 嘔吐マトン
196デフォルトの名無しさん (ワッチョイ 03d2-Cv5o)
2020/02/26(水) 12:11:34.52ID:GrI3XnzJ0197デフォルトの名無しさん (ワッチョイ ca2c-rVtL)
2020/02/26(水) 23:09:06.75ID:TmIxTRKQ0 Ruby on Rails 6 実践ガイド、黒田努、2019/12/20
Ruby on Rails 6 超入門、掌田津耶乃、2020/2/21
巨匠・掌田も、Rails 6 に参戦!
後は、山田祥寛・WINGSプロジェクトが、どうするか?
Ruby on Rails 6 超入門、掌田津耶乃、2020/2/21
巨匠・掌田も、Rails 6 に参戦!
後は、山田祥寛・WINGSプロジェクトが、どうするか?
198デフォルトの名無しさん (ワイーワ2 FF82-7qQN)
2020/02/27(木) 15:17:58.32ID:G6pyHvdgF 掌田の本は要らん
199デフォルトの名無しさん (ワッチョイ 4aa5-SiQa)
2020/02/28(金) 09:49:01.76ID:tB/cuWAa0 掌田津耶乃って何者? (Late 2012)
https://egg.5ch.net/test/read.cgi/mac/1349360916/
巨匠か?
Mac凋落と共に仕事を失った人間、とか書かれてんぞ
https://egg.5ch.net/test/read.cgi/mac/1349360916/
巨匠か?
Mac凋落と共に仕事を失った人間、とか書かれてんぞ
200デフォルトの名無しさん (ワッチョイ 4aa5-SiQa)
2020/02/28(金) 09:53:35.23ID:tB/cuWAa0201197 (ワッチョイ ca2c-rVtL)
2020/02/28(金) 13:58:28.72ID:GfVfgYuK0 多言語の3強が、掌田津耶乃・山田祥寛(WINGSプロジェクト)・柴田望洋。
他に、スッキリ・やさしい・猫でも・独習など
掌田は、その中でも断トツ!
多言語の入門書・フレームワーク・ゲームエンジンなど、
ここ数年で、20冊とかある
世界的に見ても、断トツ!
他に、スッキリ・やさしい・猫でも・独習など
掌田は、その中でも断トツ!
多言語の入門書・フレームワーク・ゲームエンジンなど、
ここ数年で、20冊とかある
世界的に見ても、断トツ!
202デフォルトの名無しさん (ワッチョイ 6b01-nhpA)
2020/02/28(金) 14:40:57.13ID:LkDsYiUy0 何か後ろの二人が気の毒
203デフォルトの名無しさん (ワッチョイ 9e2d-9Aak)
2020/02/28(金) 15:39:11.30ID:Y4GSbUWj0 Rubyはもう本で勉強するのは古い
今は迫 佑樹とかあおいとかのオンラインコースで勉強する時代だよ、
今は迫 佑樹とかあおいとかのオンラインコースで勉強する時代だよ、
204デフォルトの名無しさん (ワッチョイ 8a01-k1AF)
2020/02/29(土) 02:55:28.33ID:udUacP9j0 山田祥寛は10年近く前C#でよくお世話になった
他言語から来た入門者に程よくわかりやすい本を書く印象
柴田望洋はC言語系で何冊か読んだが
内容がすごく簡潔で短い時間でまとめ的な知識を頭に入れたり
特定のトピックを復習したいときには有用
(ただ今ならWebサイトで代用可能)
掌田津耶乃・・・
本屋で間違って手にしてもパラっと読めば速攻本棚に戻すやつ
似たような浅めの入門本著者だと
クジラ飛行机のやつは実践的なやつが多くて悪くないと思う
他言語から来た入門者に程よくわかりやすい本を書く印象
柴田望洋はC言語系で何冊か読んだが
内容がすごく簡潔で短い時間でまとめ的な知識を頭に入れたり
特定のトピックを復習したいときには有用
(ただ今ならWebサイトで代用可能)
掌田津耶乃・・・
本屋で間違って手にしてもパラっと読めば速攻本棚に戻すやつ
似たような浅めの入門本著者だと
クジラ飛行机のやつは実践的なやつが多くて悪くないと思う
205197 (ワッチョイ ca2c-rVtL)
2020/02/29(土) 23:32:52.49ID:6IdZMwnf0 なでしこの作者・クジラ飛行机は、
近年、Python から、多言語の作者として乱入してきた
なでしこだけでは食えないし、やむを得ない方向転換w
巨匠の柴田望洋は「新・明解C言語」のイメージだけど、近年、多言語に参入した
近年、Python から、多言語の作者として乱入してきた
なでしこだけでは食えないし、やむを得ない方向転換w
巨匠の柴田望洋は「新・明解C言語」のイメージだけど、近年、多言語に参入した
>>204
新独習c# は旧独習ハーバートシルトと比べてどうでしょうか?
新独習Java は、旧独習が史上稀に見る惨憺たる出来だったことから、新独習はよくなるしかないと予測しています
あと、旧独習を高く評価している私としても新独習C++ については興味がありますね
新独習c# は旧独習ハーバートシルトと比べてどうでしょうか?
新独習Java は、旧独習が史上稀に見る惨憺たる出来だったことから、新独習はよくなるしかないと予測しています
あと、旧独習を高く評価している私としても新独習C++ については興味がありますね
207197 (ワッチョイ ca2c-rVtL)
2020/03/01(日) 00:44:56.42ID:NSpMdQYF0 さすがに日本人で、シルトと比べられる著者は、いないだろ
たいてい読み応えがあるのは、Effective シリーズなどの外人著者
たいてい読み応えがあるのは、Effective シリーズなどの外人著者
208デフォルトの名無しさん (ワイモマー MMea-W44n)
2020/03/01(日) 10:00:51.93ID:JWAFHnbAM しつもんです
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}
こう書くしかありませんか?簡潔に表現したいです
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}
こう書くしかありませんか?簡潔に表現したいです
209デフォルトの名無しさん (ワッチョイ 0314-IyPa)
2020/03/01(日) 10:43:49.36ID:n6wzTSL90 > 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の方が簡潔です
> [(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の方が簡潔です
210デフォルトの名無しさん (ワッチョイ 6f5f-jGfF)
2020/03/01(日) 11:35:40.57ID:qmcGlirD0 > 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しなくていいんですか?
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しなくていいんですか?
211デフォルトの名無しさん (アウアウエー Sac2-4HC3)
2020/03/01(日) 12:14:22.10ID:8hJkpeX/a 元から間違っているがsumではない
212デフォルトの名無しさん (ワイモマー MMea-W44n)
2020/03/01(日) 12:53:48.43ID:JWAFHnbAM あごめんsumじゃなかったわw
みなさんどうもありがとうございました
みなさんどうもありがとうございました
213デフォルトの名無しさん (ワッチョイ 067d-X91k)
2020/03/01(日) 18:13:12.70ID:RW98tzZT0 rubyでtwitterとかyoutubeどうやって作るの?
全くイメージが沸かない
ツイートがリアルタイムで他者にも表示されるのってどういう仕組み?
全くイメージが沸かない
ツイートがリアルタイムで他者にも表示されるのってどういう仕組み?
214デフォルトの名無しさん (ワッチョイ cb4f-mnKr)
2020/03/01(日) 21:01:11.61ID:QPyt1UlH0 httpとブラウザの仕様の話なのでrubyは関係ない
215デフォルトの名無しさん (アウアウエー Sac2-DFeu)
2020/03/01(日) 21:57:35.00ID:F2v5Atsqa scaffold で一発で作るという意味だろう
216デフォルトの名無しさん (ワッチョイ ca2c-rVtL)
2020/03/01(日) 22:44:11.42ID:NSpMdQYF0 0から手を動かして作るRailsチャットアプリ【チュートリアル】
ttps://www.youtube.com/watch?v=WCsgcp5dg7M
Ruby on Rails で、Web Socket を使う、とだこうきの動画
ttps://www.youtube.com/watch?v=WCsgcp5dg7M
Ruby on Rails で、Web Socket を使う、とだこうきの動画
217デフォルトの名無しさん (アウアウウー Sa2f-ff41)
2020/03/01(日) 22:47:44.78ID:QZXNPr7ra >>213
JavaScriptでサーバー側のAPIを叩き、サーバーがそれに対して結果を返し、JavaScriptでその結果を画面に反映させる
基本はこれだけ
Rails任せじゃなくてちゃんとWebの仕組みを理解してAPIを実装しなきゃいけないし、JavaScriptもゴリゴリ書かなきゃいけない
SQSなどのAWSやGCPのマネージドサービスや、Kafkaのようなデータ基盤系のOSSなど高度なバックエンド技術の活用も必要だ
Railsのチュートリアルに毛が生えたような典型的なWebとは次元が違う
JavaScriptでサーバー側のAPIを叩き、サーバーがそれに対して結果を返し、JavaScriptでその結果を画面に反映させる
基本はこれだけ
Rails任せじゃなくてちゃんとWebの仕組みを理解してAPIを実装しなきゃいけないし、JavaScriptもゴリゴリ書かなきゃいけない
SQSなどのAWSやGCPのマネージドサービスや、Kafkaのようなデータ基盤系のOSSなど高度なバックエンド技術の活用も必要だ
Railsのチュートリアルに毛が生えたような典型的なWebとは次元が違う
218デフォルトの名無しさん (ワッチョイ 8a01-k1AF)
2020/03/01(日) 23:24:11.39ID:J3IrN4Ey0 クライアントがブラウザとは限らないが
いずれにしろrubyは全く関係ない
web push
server-sent events
push notification service (e.g. APNs)
↑この辺りを学べばいい
単なる通知用途で生のweb socketを
ゴリゴリ書いたりはしないんじゃないかな
いずれにしろrubyは全く関係ない
web push
server-sent events
push notification service (e.g. APNs)
↑この辺りを学べばいい
単なる通知用途で生のweb socketを
ゴリゴリ書いたりはしないんじゃないかな
219デフォルトの名無しさん (ドコグロ MMea-ff41)
2020/03/01(日) 23:52:21.24ID:H/U8nx/nM プログラミングスクールでRails勉強しました系だとプル型のアプリの作り方しか知らないだろうから、クライアントへの通知の実装方法以前に、
そもそもユーザーがツイートしたときに受信者に対して通知をキックするところの仕組みが想像できないんだろうな
そのへんはいわゆるバックエンドってやつで、ユーザー数が増えてもスケールするためには小手先のコーディングだけでなくAWSのインフラ設計まで含めた作り込みが必要
Railsできますウェーイみたいなのとは一線を画す、いい大学出たガチな連中が鎬を削ってる世界だ
そもそもユーザーがツイートしたときに受信者に対して通知をキックするところの仕組みが想像できないんだろうな
そのへんはいわゆるバックエンドってやつで、ユーザー数が増えてもスケールするためには小手先のコーディングだけでなくAWSのインフラ設計まで含めた作り込みが必要
Railsできますウェーイみたいなのとは一線を画す、いい大学出たガチな連中が鎬を削ってる世界だ
220デフォルトの名無しさん (ワッチョイ ca2c-rVtL)
2020/03/02(月) 00:40:51.77ID:8PHDRupm0 Ruby による今世紀最大の起業家、Vagrant のMitchell Hashimoto(HashiCorp)も、
Go のTerraform へ行った
今や主戦場は、Docker, Kubernetes になった
でも、サーバーの基本は、Ruby。
Node.js も、Rubyのコピーだから
Spring Boot も、Rails のコピー
Go のTerraform へ行った
今や主戦場は、Docker, Kubernetes になった
でも、サーバーの基本は、Ruby。
Node.js も、Rubyのコピーだから
Spring Boot も、Rails のコピー
221デフォルトの名無しさん (ワッチョイ 8a01-k1AF)
2020/03/02(月) 01:33:56.26ID:AuxsFe1o0222デフォルトの名無しさん (ワッチョイ cbad-wzO4)
2020/03/05(木) 19:13:20.03ID:h922Dn8C0 >>204
>柴田望洋はC言語系で何冊か読んだが
>内容がすごく簡潔で短い時間でまとめ的な知識を頭に入れたり
>特定のトピックを復習したいときには有用
いかにも教科書って感じの本書くよね
オレもオススメできる著者だと思うぞ!
>柴田望洋はC言語系で何冊か読んだが
>内容がすごく簡潔で短い時間でまとめ的な知識を頭に入れたり
>特定のトピックを復習したいときには有用
いかにも教科書って感じの本書くよね
オレもオススメできる著者だと思うぞ!
223デフォルトの名無しさん (ブーイモ MM7f-Pim3)
2020/03/05(木) 19:35:07.49ID:1tYxfkRNM 本屋いったらrubyの本は駆逐されてた
224デフォルトの名無しさん (ワッチョイ cbad-wzO4)
2020/03/05(木) 21:34:51.52ID:h922Dn8C0 すっかりPythonの本に置きかわったよな!
やっぱ人工知能ブームに乗れなかったのがデカイ
やっぱ人工知能ブームに乗れなかったのがデカイ
225デフォルトの名無しさん (ワッチョイ 9fa5-HL4i)
2020/03/06(金) 14:08:05.02ID:gkPkCuAw0 ・P系言語には絶対にPを付けるべきであった
・endがある言語には終わりがある
オカルト方面の理由だとこのようになる
「pascalは終わった」とは業界の定型句だが終わったのはendがあるからだ
なので「end」という文字の視覚的影響は思いの他大きいのではなかろうか
代わりにpythonはselfを見続けることになる
他の理由としては、我々は「ぱい」と発音したい生物である、という、これまたオカルトな理由だ
特にPから始まる単語は人類にとって基本的・根源的らしい
「PyPI」とかどーすんだコレとか思っちゃうような発音の存在こそが、pythonを存続させている大きな原動力だ
・endがある言語には終わりがある
オカルト方面の理由だとこのようになる
「pascalは終わった」とは業界の定型句だが終わったのはendがあるからだ
なので「end」という文字の視覚的影響は思いの他大きいのではなかろうか
代わりにpythonはselfを見続けることになる
他の理由としては、我々は「ぱい」と発音したい生物である、という、これまたオカルトな理由だ
特にPから始まる単語は人類にとって基本的・根源的らしい
「PyPI」とかどーすんだコレとか思っちゃうような発音の存在こそが、pythonを存続させている大きな原動力だ
226デフォルトの名無しさん (ワッチョイ cbad-wzO4)
2020/03/06(金) 16:38:00.92ID:Z17kfdKR0 なぜ差が付いたか RubyとPython
――(日本語圏の)慢心、(AI)環境の差!
――(日本語圏の)慢心、(AI)環境の差!
227デフォルトの名無しさん (アウアウエー Sa3f-xiWk)
2020/03/06(金) 20:06:25.61ID:dfpAZ0dma cobol には end があるが、しぶとく生き残っている
早く絶滅してほしいものだが
早く絶滅してほしいものだが
228デフォルトの名無しさん (ワッチョイ 0feb-Qbw5)
2020/03/06(金) 21:40:53.72ID:f8XVsIbI0 Rubyの方がCOBOLより先に死滅する希ガス
229デフォルトの名無しさん (ワッチョイ ab57-g6LZ)
2020/03/06(金) 22:57:29.86ID:rcgbHB5O0 慢心と言うより
補助金事業になったら碌なことにならない例の一つ
補助金事業になったら碌なことにならない例の一つ
230デフォルトの名無しさん (ワッチョイ cbad-wzO4)
2020/03/07(土) 03:49:31.31ID:meF2wfp30 補助金が腐らせるの
日本のあるあるだな!
日本のあるあるだな!
231デフォルトの名無しさん (ワッチョイ ef8c-NYnE)
2020/03/07(土) 12:58:20.56ID:Q0oLpIzl0 >>226
コメントアウトの仕方
コメントアウトの仕方
232デフォルトの名無しさん (ワッチョイ 2ba5-Inmc)
2020/03/07(土) 13:58:54.14ID:H7f33zo10 Rubyは日本の言語ではなくて
日本発だけど
日本からアメリカのユタ州に税金を抜かれるだけの言語だ
日本発だけど
日本からアメリカのユタ州に税金を抜かれるだけの言語だ
233デフォルトの名無しさん (ワッチョイ 4b2d-hds7)
2020/03/07(土) 16:10:40.97ID:ZoK+qwRc0 補助金で食える人数も限られてるから、余計に閉鎖的になってく
234デフォルトの名無しさん (ワッチョイ cbad-wzO4)
2020/03/07(土) 19:42:14.60ID:meF2wfp30 補助金で喰える上級Ruby国民は安泰だけど
下級Ruby国民はPythonに逃げ出してる現状
下級Ruby国民はPythonに逃げ出してる現状
235デフォルトの名無しさん (ワッチョイ 4b2d-hds7)
2020/03/10(火) 16:47:55.38ID:rx4TAX460 Rubyの高額教材屋も増えまくってたり、こんなの国が金を出して支援するもんじゃないよもう
236デフォルトの名無しさん (ワッチョイ ab01-xzLc)
2020/03/10(火) 21:55:43.55ID:uPXabSQ00 perlの保守性の低さについて何も学ばなかったから。
237デフォルトの名無しさん (ワッチョイ 827d-VqAA)
2020/03/15(日) 06:29:59.66ID:d7tE7oy90 リファレンスマニュアルの正規表現の一覧に
(<=pat) 肯定後読み
となってるけど正しくは (?<=pat) ですよね
(<=pat) 肯定後読み
となってるけど正しくは (?<=pat) ですよね
238デフォルトの名無しさん (オッペケ Sr91-M7Q/)
2020/03/15(日) 07:01:08.84ID:fxB2xu91r せやね
239デフォルトの名無しさん (ワッチョイ 698f-tF/6)
2020/03/17(火) 10:26:17.82ID:55EeZ8o40 AI環境の差は大きいっすねー
保守性とかどうでもいいしrubyの文法は好きだけど、今から勉強する人にはphthon勧めざるを得ない
保守性とかどうでもいいしrubyの文法は好きだけど、今から勉強する人にはphthon勧めざるを得ない
240デフォルトの名無しさん (ワッチョイ a1ad-M7Q/)
2020/03/17(火) 11:47:19.04ID:xPTEZvMY0 PythonはAIライブラリそろってるからな
241デフォルトの名無しさん (ワッチョイ c201-Ruah)
2020/03/17(火) 18:17:35.92ID:Np3/43wU0 機械学習や統計処理のために
プログラミングできるようになりたいというひとは
迷わずPythonから初めればいいけど
明確な目的がない場合はRubyから初めさせたほうが
プログラミング自体の習熟が断然早い
1ヶ月程度でプログラミングの基礎を身につけたら
後は好きなやつやればいいと思う
新卒で2~3言語学ばせるABテストとかやってみたいね
プログラミングできるようになりたいというひとは
迷わずPythonから初めればいいけど
明確な目的がない場合はRubyから初めさせたほうが
プログラミング自体の習熟が断然早い
1ヶ月程度でプログラミングの基礎を身につけたら
後は好きなやつやればいいと思う
新卒で2~3言語学ばせるABテストとかやってみたいね
242デフォルトの名無しさん (ワッチョイ 02a5-5LgE)
2020/03/17(火) 18:19:24.38ID:ybHHyXnP0 ABテストやってないのになんでRubyからの方がいいって分かるの
243デフォルトの名無しさん (ドコグロ MM95-Syvm)
2020/03/17(火) 18:38:35.80ID:7aCFf3OgM 明確な目的のない奴にRails専用スクリプト(別名Ruby)を勧めるのはさすがにどうかと
244デフォルトの名無しさん (ワッチョイ 698f-tF/6)
2020/03/17(火) 19:08:20.64ID:55EeZ8o40 別にrailsなんかなくたってperlよりモダンな汎用スクリプト言語ではあるやろ
245デフォルトの名無しさん (ドコグロ MM95-Syvm)
2020/03/17(火) 19:19:47.39ID:7aCFf3OgM >>244
Windowsでまともに使い物にならないのは汎用スクリプトとしては致命的
ぶっちゃけPythonがビッグデータやAIで持て囃されてるのもWindowsと相性いいからだよ
ビッグデータやAIはエンタープライズで金になるテーマだからWindowsと相性悪いのは論外
Windowsでまともに使い物にならないのは汎用スクリプトとしては致命的
ぶっちゃけPythonがビッグデータやAIで持て囃されてるのもWindowsと相性いいからだよ
ビッグデータやAIはエンタープライズで金になるテーマだからWindowsと相性悪いのは論外
246sage (ワッチョイ a265-aX25)
2020/03/17(火) 22:30:48.07ID:Zy9Qhkko0 つまり、わざわざRubyスレまで乱入してしまうほど、
Python信者にはRubyへのコンプレックスが強いってことね
Python信者にはRubyへのコンプレックスが強いってことね
247デフォルトの名無しさん (ワッチョイ d233-YfnF)
2020/03/17(火) 22:32:51.78ID:Ai6ps0PO0 じゃあPowerShellで!
248デフォルトの名無しさん (ワッチョイ c201-Ruah)
2020/03/17(火) 23:16:01.71ID:Np3/43wU0249デフォルトの名無しさん (ワッチョイ 02a5-5LgE)
2020/03/17(火) 23:40:22.57ID:ybHHyXnP0 そりゃ教師そのものがRubyが得意でRuby贔屓ならRubyを教えるのが上手いんでしょ
だから生徒はRubyの習熟が早くなる
だから本人ですら「ABテストは必要」って思ってるんでしょ
要するに生徒の言語取得速度は教師の得意言語の習熟度合いに比例する
だから生徒はRubyの習熟が早くなる
だから本人ですら「ABテストは必要」って思ってるんでしょ
要するに生徒の言語取得速度は教師の得意言語の習熟度合いに比例する
250sage (ワッチョイ a265-aX25)
2020/03/17(火) 23:45:23.49ID:Zy9Qhkko0 ぶっちゃけ、Rubyに慣れると、Pythonでコレクションを使うことが苦痛になるんだよな
「コレクションが最高にイケてる言語を作ろう(dat落ち)」から引用
http://mevius.2ch.net/test/read.cgi/tech/1491491123/43-45
> 43 1 名前:デフォルトの名無しさん Mail: 投稿日:2017/05/05(金) 18:00:36.59 ID:oGFFYBoD
> コレクション使ってて使いづらいと思うことも最近は減ってきたよな
> 昔より言語が進歩してるんだろか
>
> 44 名前:デフォルトの名無しさん Mail: 投稿日:2017/05/05(金) 21:23:00.44 ID:Qc8J8Hpx
> >>43
> でもねぇ、世の中にはコレクション操作が使いづらい
> 退化した最悪な言語が存在する
>
> http://d.hatena.ne.jp/edvakf/20090405/1238885788
>
> 元々は手続き型として設計された簡潔な言語だったけど、
> オブジェクト指向やら関数型やらを行き当たりばったりに増築し続けたおかげで、
> コレクション操作に関する「一貫性」という設計哲学が破綻してしまった例だね
>
> 45 名前:デフォルトの名無しさん Mail: 投稿日:2017/05/05(金) 21:52:01.71 ID:Qc8J8Hpx
> [Ruby]
> a.sort().reverse().map{|x| x.to_s}.join('-')
>
> [JavaScript]
> a.sort().reverse().map(function(x) { return x.toString() }).join(“-“)
>
> [Python]
> '-'.join(map(lambda x: str(x), reversed(sorted(a))))
「コレクションが最高にイケてる言語を作ろう(dat落ち)」から引用
http://mevius.2ch.net/test/read.cgi/tech/1491491123/43-45
> 43 1 名前:デフォルトの名無しさん Mail: 投稿日:2017/05/05(金) 18:00:36.59 ID:oGFFYBoD
> コレクション使ってて使いづらいと思うことも最近は減ってきたよな
> 昔より言語が進歩してるんだろか
>
> 44 名前:デフォルトの名無しさん Mail: 投稿日:2017/05/05(金) 21:23:00.44 ID:Qc8J8Hpx
> >>43
> でもねぇ、世の中にはコレクション操作が使いづらい
> 退化した最悪な言語が存在する
>
> http://d.hatena.ne.jp/edvakf/20090405/1238885788
>
> 元々は手続き型として設計された簡潔な言語だったけど、
> オブジェクト指向やら関数型やらを行き当たりばったりに増築し続けたおかげで、
> コレクション操作に関する「一貫性」という設計哲学が破綻してしまった例だね
>
> 45 名前:デフォルトの名無しさん Mail: 投稿日:2017/05/05(金) 21:52:01.71 ID:Qc8J8Hpx
> [Ruby]
> a.sort().reverse().map{|x| x.to_s}.join('-')
>
> [JavaScript]
> a.sort().reverse().map(function(x) { return x.toString() }).join(“-“)
>
> [Python]
> '-'.join(map(lambda x: str(x), reversed(sorted(a))))
251sage (ワッチョイ 5365-f0Va)
2020/03/18(水) 00:02:08.49ID:NlFyVHMs0 >>250 のコレクション操作を例にすると、Rubyならメソッドチェーンが
左から右へ自然と流れるから、ヒストリー機能を利用して
対話的なプログラミングが楽々と実践できる
$ irb
irb(main):001:0> a = [1,4,3,2]
irb(main):002:0> a.sort
=> [1, 2, 3, 4]
irb(main):003:0> a.sort.reverse
=> [4, 3, 2, 1]
irb(main):004:0> a.sort.reverse.map(&:to_s)
=> ["4", "3", "2", "1"]
irb(main):005:0> a.sort.reverse.map(&:to_s).join('-')
=> "4-3-2-1"
irb(main):006:0>
Ruby利用者にとっては特別でもなんでもない当たり前の常識だけど、
Pythonの対話環境じゃ無理なのが、いやはやなんとも
左から右へ自然と流れるから、ヒストリー機能を利用して
対話的なプログラミングが楽々と実践できる
$ irb
irb(main):001:0> a = [1,4,3,2]
irb(main):002:0> a.sort
=> [1, 2, 3, 4]
irb(main):003:0> a.sort.reverse
=> [4, 3, 2, 1]
irb(main):004:0> a.sort.reverse.map(&:to_s)
=> ["4", "3", "2", "1"]
irb(main):005:0> a.sort.reverse.map(&:to_s).join('-')
=> "4-3-2-1"
irb(main):006:0>
Ruby利用者にとっては特別でもなんでもない当たり前の常識だけど、
Pythonの対話環境じゃ無理なのが、いやはやなんとも
252デフォルトの名無しさん (ワッチョイ 292c-cvBQ)
2020/03/18(水) 00:49:04.35ID:LQtyodHE0 元々、Ruby/Groovy は似てる。
JavaScript, Kotlin も、Ruby/Groovy に似せてきてる
>>241
有名な雑食系エンジニア・KENTA も、YouTube で言ってるけど、
将来的に、機械学習・AI をやりたいからと言って、Python から始めるのは間違いです!
初心者は、Ruby でプログラミング自体を学ぶべき
Ruby on Rails を一通りやると、アプリ製作の全工程を学べる。
後はそれを他言語へ置き換えるだけ
それと、多くの学校が、Ruby を勧めるのは、就職率が高いから。
Python の場合は、web系の仕事が、1/10 しかない
機械学習・AI は、大学院・英検準一級などの高学歴が必要だから、
高卒などのプログラミング初心者を雇わない
高卒web系プログラマーは、Ruby。
高学歴総合職は、Python
この内、学校で教えられるのは、Ruby。
Pythonを教えても、就職できないから詐欺になってしまう
JavaScript, Kotlin も、Ruby/Groovy に似せてきてる
>>241
有名な雑食系エンジニア・KENTA も、YouTube で言ってるけど、
将来的に、機械学習・AI をやりたいからと言って、Python から始めるのは間違いです!
初心者は、Ruby でプログラミング自体を学ぶべき
Ruby on Rails を一通りやると、アプリ製作の全工程を学べる。
後はそれを他言語へ置き換えるだけ
それと、多くの学校が、Ruby を勧めるのは、就職率が高いから。
Python の場合は、web系の仕事が、1/10 しかない
機械学習・AI は、大学院・英検準一級などの高学歴が必要だから、
高卒などのプログラミング初心者を雇わない
高卒web系プログラマーは、Ruby。
高学歴総合職は、Python
この内、学校で教えられるのは、Ruby。
Pythonを教えても、就職できないから詐欺になってしまう
253デフォルトの名無しさん (ワッチョイ d9ad-NT4g)
2020/03/18(水) 04:59:33.67ID:/KOWoh670254デフォルトの名無しさん (ワッチョイ d9ad-NT4g)
2020/03/18(水) 05:02:26.13ID:/KOWoh670 >>250
Rubyは文法がシンプルで書きやすいんだよな
書きやすさだけで言ったら
Ruby > Python >>> JavaScript
JavaScriptは変なクセと
ローカルルールが多すぎる
Rubyは文法がシンプルで書きやすいんだよな
書きやすさだけで言ったら
Ruby > Python >>> JavaScript
JavaScriptは変なクセと
ローカルルールが多すぎる
255デフォルトの名無しさん (ワッチョイ 29d2-CgSh)
2020/03/18(水) 08:17:19.36ID:r6r+WwC90256デフォルトの名無しさん (ワイーワ2 FF63-hOSC)
2020/03/18(水) 13:14:11.40ID:fwLKdVFoF 語順に拘る必要は無いと思う
a = [3,5,1,2,4]
'-'.join(pd.Series(a).sort_values(ascending=False).apply(str))
a = [3,5,1,2,4]
'-'.join(pd.Series(a).sort_values(ascending=False).apply(str))
257デフォルトの名無しさん (ワッチョイ 9301-lXNI)
2020/03/18(水) 14:43:54.21ID:mQYnVt2r0 >>249
違うよ
教えるコアな要素は共通にもかかわらず
初心者がつまづく内容や頻度だったりそれを自己解決できる割合が言語によってかなり違う
それが習熟速度に影響を与える一番の要因
ABテストやってみたいねと書いたのは複数言語を学習する順番が
プログラミング習熟度に与える影響の調査をペーパー書けるくらいフォーマルにやってみたいねって話
3言語なら最低6グループ必要になるわけで
統計的に意味ある人数集めてそんなテストするの普通の会社では無理だからね
Aグループ: Ruby -> Python -> JavaScript
Bグループ: Python -> JavaScript -> Ruby
…
違うよ
教えるコアな要素は共通にもかかわらず
初心者がつまづく内容や頻度だったりそれを自己解決できる割合が言語によってかなり違う
それが習熟速度に影響を与える一番の要因
ABテストやってみたいねと書いたのは複数言語を学習する順番が
プログラミング習熟度に与える影響の調査をペーパー書けるくらいフォーマルにやってみたいねって話
3言語なら最低6グループ必要になるわけで
統計的に意味ある人数集めてそんなテストするの普通の会社では無理だからね
Aグループ: Ruby -> Python -> JavaScript
Bグループ: Python -> JavaScript -> Ruby
…
258デフォルトの名無しさん (ワッチョイ 9301-lXNI)
2020/03/18(水) 14:56:08.21ID:mQYnVt2r0 >>256
思考の順序とコードで表現する順序が近ければ近いほど
思考ノイズが少なくて初心者に限らず人間には理解しやすい
単にできればいいってもんじゃない
結局Pythonでわかりやすく読みやすいコードを書くには
自然な思考順序と異なる部分をラップした関数を独自に定義していくか
Pythonで表現できる順序に自分の思考順序を合わせていくしかなく
一般に読みやすいと思えるコードを書く労力がRubyに比べると段違いで多い
少し前にPythonスレで質問があったflattenがいい例
思考の順序とコードで表現する順序が近ければ近いほど
思考ノイズが少なくて初心者に限らず人間には理解しやすい
単にできればいいってもんじゃない
結局Pythonでわかりやすく読みやすいコードを書くには
自然な思考順序と異なる部分をラップした関数を独自に定義していくか
Pythonで表現できる順序に自分の思考順序を合わせていくしかなく
一般に読みやすいと思えるコードを書く労力がRubyに比べると段違いで多い
少し前にPythonスレで質問があったflattenがいい例
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 「アベノミクス」で投資対象と化したマンション ローンの低金利続き「年収の12倍」借りる20代出現 [蚤の市★]
- 食品の高騰対策、政府が交付金の「特別枠」検討 原則全ての自治体で [蚤の市★]
- 【超絶悲報】日本政府「高市さんの答弁撤回はない。政権として弱腰と映る姿勢は見せられない」これもう立憲岡田の議員辞職しかないだろ [519511584]
- 【実況】博衣こよりのえちえち朝こよ🧪
- 台湾「高市さんが台湾人の悲願を叶えてくれた!」これじゃ高市さん発言撤回できないぢゃん😰 [523957489]
- 高市周辺、さすがに焦り始めるww「小さな火種が火事になりかけている。早く鎮火しなくてはいけない」 [271912485]
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
