前スレ
ぶっちゃけ始めるのにいい言語て何 part2
http://mevius.5ch.net/test/read.cgi/tech/1594883518/
探検
ぶっちゃけ始めるのにいい言語て何 part3
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/09/03(木) 14:23:33.06ID:Iw25SRBH2020/09/03(木) 15:59:04.11ID:f/udSEF6
前スレより
790 1 名前:デフォルトの名無しさん Mail:sage 投稿日:2020/08/18(火) 17:43:05.80 ID:HR/M/dGq
>>765
対話的なプログラミング環境、いわゆるREPLは大事だよね
たとえば「0から9までの数字で偶数のものを2乗した配列」が欲しいとする
もしもこうした環境が提供されている言語であれば:
$ irb
irb(main):001:0> (0..9)
=> 0..9
irb(main):002:0> (0..9).select {|n| n % 2 == 0}
=> [0, 2, 4, 6, 8]
irb(main):003:0> (0..9).select {|n| n % 2 == 0}.map {|n| n * n}
=> [0, 4, 16, 36, 64]
irb(main):004:0>
その場で、手軽に計算を学習できる、あたかも電卓のように
こうしたメソッドチェーン(あるいは関数型言語におけるパイプライン演算子)は、
スレタイにある「ぶっちゃけ始めるのにいい言語」には必須じゃないかと思われ
https://qiita.com/subaru-shoji/items/110529c2c1824633d79c
790 1 名前:デフォルトの名無しさん Mail:sage 投稿日:2020/08/18(火) 17:43:05.80 ID:HR/M/dGq
>>765
対話的なプログラミング環境、いわゆるREPLは大事だよね
たとえば「0から9までの数字で偶数のものを2乗した配列」が欲しいとする
もしもこうした環境が提供されている言語であれば:
$ irb
irb(main):001:0> (0..9)
=> 0..9
irb(main):002:0> (0..9).select {|n| n % 2 == 0}
=> [0, 2, 4, 6, 8]
irb(main):003:0> (0..9).select {|n| n % 2 == 0}.map {|n| n * n}
=> [0, 4, 16, 36, 64]
irb(main):004:0>
その場で、手軽に計算を学習できる、あたかも電卓のように
こうしたメソッドチェーン(あるいは関数型言語におけるパイプライン演算子)は、
スレタイにある「ぶっちゃけ始めるのにいい言語」には必須じゃないかと思われ
https://qiita.com/subaru-shoji/items/110529c2c1824633d79c
2020/09/03(木) 18:13:15.27ID:6AJp7Q6D
日本語や英語などの自然言語ができるのなら、それよりはずっと簡単なんだから何でもいいから始めればいい
逆に本とかで勉強するだけでは身につかず実際に日常で使っていくのが一番の勉強になる
これは義務教育で英語やった人なら分かるはず。よってここはただの雑談スレ
逆に本とかで勉強するだけでは身につかず実際に日常で使っていくのが一番の勉強になる
これは義務教育で英語やった人なら分かるはず。よってここはただの雑談スレ
2020/09/03(木) 18:43:13.63ID:bHyMdwQo
個人的にはCで始めることができたのは運が良かったと思ってる。
もう30年くらい前だが(w)、あのときFORTLANとかCOBOLだったら
今の言語見たら目が滑りまくると思う。
今ならC#かjavaから入っとけば潰しが効く気がする。パラダイムシフト
起こったら知らんけどw
もう30年くらい前だが(w)、あのときFORTLANとかCOBOLだったら
今の言語見たら目が滑りまくると思う。
今ならC#かjavaから入っとけば潰しが効く気がする。パラダイムシフト
起こったら知らんけどw
5デフォルトの名無しさん
2020/09/03(木) 20:00:31.82ID:kL+30avi >>2
selectやmapだの仮変数nだのをいちいち書かなければならなくて冗長。
ベクトル演算できる言語だとすっきり書けて小気味良い。
R: seq(0, 9, 2) ^ 2
Julia, Octave: (0:2:9) .^ 2
selectやmapだの仮変数nだのをいちいち書かなければならなくて冗長。
ベクトル演算できる言語だとすっきり書けて小気味良い。
R: seq(0, 9, 2) ^ 2
Julia, Octave: (0:2:9) .^ 2
6デフォルトの名無しさん
2020/09/03(木) 20:24:50.20ID:o+d3Cgd9 C# 一択でしょ。Windows、Mac、iOS、Android、ウェブアプリ、何でも作れる。型を指定してオブジェクトを宣言するから、自動補完もばっちり。
2020/09/03(木) 22:28:17.87ID:V2b1bZds
スレたて乙
2020/09/03(木) 23:56:41.77ID:46Dd9IKP
>>2
irb とか、そんな面倒なものは使わない
VSCode の拡張機能・Code Runner(Run Code)で、
ファイル全体、または、コード片を選択して実行できる
p range = ( 0..4 )
p ary = range.select { |n| n % 2 == 0 }
p ary2 = ary.map { |n| n * n }
出力
0..4
[0, 2, 4]
[0, 4, 16]
irb とか、そんな面倒なものは使わない
VSCode の拡張機能・Code Runner(Run Code)で、
ファイル全体、または、コード片を選択して実行できる
p range = ( 0..4 )
p ary = range.select { |n| n % 2 == 0 }
p ary2 = ary.map { |n| n * n }
出力
0..4
[0, 2, 4]
[0, 4, 16]
2020/09/04(金) 06:21:36.08ID:3Qxfkq0A
>>4
目が滑るってプログラム的にどういう意味?
目が滑るってプログラム的にどういう意味?
2020/09/04(金) 20:29:20.06ID:9etj62x2
UnityでC#触るのが楽しくていいんじゃない?
2020/09/04(金) 23:37:49.32ID:I8Hp1/bB
pythonは人気あるけど、括弧が無いっていう他の言語との違いが気になる。
C#とかTypeScriptが良いと思う。
C#とかTypeScriptが良いと思う。
12デフォルトの名無しさん
2020/09/05(土) 02:51:46.19ID:OV3VFUME ・・・どうしてマキマはパワーを殺めてもうたん?(´;ω;`)ブワッ
2020/09/05(土) 07:53:46.85ID:27CeiSlO
コード規約が多数派に行かないと苦労しそう。
14デフォルトの名無しさん
2020/09/05(土) 20:01:59.21ID:+9oXrKGt 僕もC♯やってつ
2020/09/06(日) 15:21:11.67ID:fVJSzq3O
javascriptかな。htmlとcssを一緒に覚えるとブラウザで遊べて楽しい。コード例もゴロゴロ転がってる。
2020/09/06(日) 20:31:23.67ID:3EmhWp3D
JavaScriptはもう触りたくないンゴ
2020/09/06(日) 21:59:02.12ID:bHAmEDsp
何をやりたいかにもよらない?
例えばWeb系やりたいならJavaScriptとか
例えばWeb系やりたいならJavaScriptとか
2020/09/07(月) 00:06:42.80ID:3mV3QMzX
>>11 括弧がないってどういう意味?
2020/09/07(月) 00:59:38.23ID:iE0dVXFV
格好がつかない
2020/09/07(月) 04:25:35.25ID:PFWkTL8D
複合文の波括弧がないということでしょ。個人的にはオフサイドルールは大好きだけど、嫌いという人がいるのも分かる。
2020/09/07(月) 04:54:30.33ID:BYWLguUb
2020/09/07(月) 20:19:42.76ID:nh0ZPRbh
波カッコがないとブロックを終わるときにエディタが助けてくれないのかちょっといや
232
2020/09/07(月) 22:23:17.43ID:RPzI080p >>2 のお題であれば、波カッコを使えば左から右へ流れるようなコードが書ける
(0..9).select {|n| n % 2 == 0}.map {|n| n * n}
ところがだ、波カッコを無くしたまでは良かったけど、代わりに丸カッコを三重に入れ子にした
コードを書かざるを得ないのが Python といふ言語
list(map(lambda i:i**2 , range(0,10,2)) )
前スレ「ぶっちゃけ始めるのにいい言語て何 part2 」より引用
http://mevius.5ch.net/test/read.cgi/tech/1594883518/808/
インデントを強制することによってコードを簡潔にして可読性を高める、
と言うアイデアは決して間違いではなかったけれど、Pythonが言語設計の比較対象にしていたのは
FORTRAN/COBOL/PASCALそしてPerlといった手続き型言語とそのプログラミングパラダイムだった
確かにWHILE-ENDやFOR-ENDでループ処理をゴリゴリ回すコードが比較対象であれば美しかった
けれども時代はオブジェクト指向(メソッドチェーン)や関数型(パイプライン演算子 or 関数合成)といった
より洗練されたプログラミング表現へと進化している
たとえば古典的な関数型言語のLISPはS式と呼ばれる丸カッコの入れ子が代名詞だけれど、
最初からインデントの強制を前提に設計された関数型言語Haskellであればパイプライン演算子や関数合成は使えるし、
それどころかHaskellは型システムを前提にしたソフトウェア設計論やプログラミンングにおける圏論といった、
未来へと続く次世代プログラミングヘのパラダイムシフトへの影響をもたらしている
当初は手続き型言語として設計された(Perlと比較すれば)簡潔で美しいスクリプト言語 Python、
けれども新宿界隈の雑居ビルのごとく行き当たりばったりに中途半端なオブジェクト指向や関数型が導入された
(0..9).select {|n| n % 2 == 0}.map {|n| n * n}
ところがだ、波カッコを無くしたまでは良かったけど、代わりに丸カッコを三重に入れ子にした
コードを書かざるを得ないのが Python といふ言語
list(map(lambda i:i**2 , range(0,10,2)) )
前スレ「ぶっちゃけ始めるのにいい言語て何 part2 」より引用
http://mevius.5ch.net/test/read.cgi/tech/1594883518/808/
インデントを強制することによってコードを簡潔にして可読性を高める、
と言うアイデアは決して間違いではなかったけれど、Pythonが言語設計の比較対象にしていたのは
FORTRAN/COBOL/PASCALそしてPerlといった手続き型言語とそのプログラミングパラダイムだった
確かにWHILE-ENDやFOR-ENDでループ処理をゴリゴリ回すコードが比較対象であれば美しかった
けれども時代はオブジェクト指向(メソッドチェーン)や関数型(パイプライン演算子 or 関数合成)といった
より洗練されたプログラミング表現へと進化している
たとえば古典的な関数型言語のLISPはS式と呼ばれる丸カッコの入れ子が代名詞だけれど、
最初からインデントの強制を前提に設計された関数型言語Haskellであればパイプライン演算子や関数合成は使えるし、
それどころかHaskellは型システムを前提にしたソフトウェア設計論やプログラミンングにおける圏論といった、
未来へと続く次世代プログラミングヘのパラダイムシフトへの影響をもたらしている
当初は手続き型言語として設計された(Perlと比較すれば)簡潔で美しいスクリプト言語 Python、
けれども新宿界隈の雑居ビルのごとく行き当たりばったりに中途半端なオブジェクト指向や関数型が導入された
2020/09/07(月) 23:11:49.23ID:3uGG3SyO
>>23
偶数のみを処理するのとイテレート時に1個飛ばしで処理するのは意味が違うから混同しちゃだめ
Ruby
(0..9).filter(&:even?).map{|x| x ** 2}
Python
[x ** 2 for x in range(0, 10) if x % 2 == 0]
or
list(map(lambda x:x ** 2, filter(lambda x: x % 2 == 0, range(0,10)))) # 醜いので普通は使わない
偶数のみを処理するのとイテレート時に1個飛ばしで処理するのは意味が違うから混同しちゃだめ
Ruby
(0..9).filter(&:even?).map{|x| x ** 2}
Python
[x ** 2 for x in range(0, 10) if x % 2 == 0]
or
list(map(lambda x:x ** 2, filter(lambda x: x % 2 == 0, range(0,10)))) # 醜いので普通は使わない
252
2020/09/07(月) 23:44:37.90ID:RPzI080p >>24
> 偶数のみを処理するのとイテレート時に1個飛ばしで処理するのは意味が違うから混同しちゃだめ
前スレ808氏が苦し紛れに書いたコードでしたので、私はあえてツッコまなかったのですが。。。鬼ですね
> [x ** 2 for x in range(0, 10) if x % 2 == 0]
こちらの内包表記を用いたコードであれば「醜さ」は改善されていますね
もっともHaskellのように、あたかも数式であるかのように書ければ、
より「美しい」と共感する人は多かったのでは無いかと思われますが
[x ** 2 | x <- 0..10, x % 2 == 0]
> { x ^ 2 | x ∈ S, x > 3 } みたいな数学の集合の表現が元ネタなのかもね
前スレ「ぶっちゃけ始めるのにいい言語て何 part2 」から引用
http://mevius.5ch.net/test/read.cgi/tech/1594883518/811/
では、続きまして前スレから次のお題です
・ある配列を、昇順に並べて、反転して、文字列化して、間を”-“で繋ぐ
[1,4,3,2].sort.reverse.map(&:to_s).join('-')
前スレ「ぶっちゃけ始めるのにいい言語て何 part2 」から引用
http://mevius.5ch.net/test/read.cgi/tech/1594883518/791-792/
このように波カッコを使えば、先のお題と同様に左から右へと流れるようなコードが書けます
たいして難しいどころか日常的に見られる簡単なお題ですから、もちろん内包表記でも書けますよね?
> 偶数のみを処理するのとイテレート時に1個飛ばしで処理するのは意味が違うから混同しちゃだめ
前スレ808氏が苦し紛れに書いたコードでしたので、私はあえてツッコまなかったのですが。。。鬼ですね
> [x ** 2 for x in range(0, 10) if x % 2 == 0]
こちらの内包表記を用いたコードであれば「醜さ」は改善されていますね
もっともHaskellのように、あたかも数式であるかのように書ければ、
より「美しい」と共感する人は多かったのでは無いかと思われますが
[x ** 2 | x <- 0..10, x % 2 == 0]
> { x ^ 2 | x ∈ S, x > 3 } みたいな数学の集合の表現が元ネタなのかもね
前スレ「ぶっちゃけ始めるのにいい言語て何 part2 」から引用
http://mevius.5ch.net/test/read.cgi/tech/1594883518/811/
では、続きまして前スレから次のお題です
・ある配列を、昇順に並べて、反転して、文字列化して、間を”-“で繋ぐ
[1,4,3,2].sort.reverse.map(&:to_s).join('-')
前スレ「ぶっちゃけ始めるのにいい言語て何 part2 」から引用
http://mevius.5ch.net/test/read.cgi/tech/1594883518/791-792/
このように波カッコを使えば、先のお題と同様に左から右へと流れるようなコードが書けます
たいして難しいどころか日常的に見られる簡単なお題ですから、もちろん内包表記でも書けますよね?
2020/09/07(月) 23:59:11.84ID:3uGG3SyO
>>25
>このように波カッコを使えば
コードブロックの表現に波括弧やキーワードを使うのか
それともインデントを使うのかとは関係なくない?
Pythonが複数行のlambdaを書けないのはPython特有の問題だし
PythonのAPI設計がオブジェクト指向的じゃないのもPython特有の問題でインデントとは関係ない
>このように波カッコを使えば
コードブロックの表現に波括弧やキーワードを使うのか
それともインデントを使うのかとは関係なくない?
Pythonが複数行のlambdaを書けないのはPython特有の問題だし
PythonのAPI設計がオブジェクト指向的じゃないのもPython特有の問題でインデントとは関係ない
2020/09/08(火) 00:06:33.87ID:d82mVcHe
単なる癖づけの問題で、多数派の方が楽だよねって思うが。
282
2020/09/08(火) 00:37:25.12ID:1GKR+zTs >>26
そもそも>>25のコードでは波カッコを使っていない、というオチは置いといて(苦笑
[1,4,3,2].sort.reverse.map(&:to_s).join('-')
>>25で書いたように、Pythonが誕生した手続き型プログラミングが主流の時代には、
> コードブロックの表現に波括弧やキーワードを使うのか
> それともインデントを使うのかとは
大いに関係がありました(過去形)
Pascal の begin..end を使うのかCの{..}を使うのか、いやそもそもブロック表現は
具象構文にインデントを取り込めば..といった論争です(Occamといふ言語をしていますか?)
今となっては当時を知らない若手か老害しか興味を持たないようなつまらない話題です
おっしゃるように問題は、元々は1980年代の設計思想(手続き型パラダイム)で設計されて誕生し、
時代時代の流行を追いかけて後方互換性を断絶するような改変(Python2->3)を強行してもなお、
中途半端な関数型プログラミンングやオブジェクト指向プログラミングしか
書けないPythonの現状にあるわけです
で、あなたはこの現状を正確に認識した上で、そんな言語を「ぶっちゃけ始めるのにいい言語」として
他人にお薦めしますか?
もちろん実世界の閉じた世界で何も知らない初心者を相手にして、優越感に浸る手段とはなるのでしょうけれど
そもそも>>25のコードでは波カッコを使っていない、というオチは置いといて(苦笑
[1,4,3,2].sort.reverse.map(&:to_s).join('-')
>>25で書いたように、Pythonが誕生した手続き型プログラミングが主流の時代には、
> コードブロックの表現に波括弧やキーワードを使うのか
> それともインデントを使うのかとは
大いに関係がありました(過去形)
Pascal の begin..end を使うのかCの{..}を使うのか、いやそもそもブロック表現は
具象構文にインデントを取り込めば..といった論争です(Occamといふ言語をしていますか?)
今となっては当時を知らない若手か老害しか興味を持たないようなつまらない話題です
おっしゃるように問題は、元々は1980年代の設計思想(手続き型パラダイム)で設計されて誕生し、
時代時代の流行を追いかけて後方互換性を断絶するような改変(Python2->3)を強行してもなお、
中途半端な関数型プログラミンングやオブジェクト指向プログラミングしか
書けないPythonの現状にあるわけです
で、あなたはこの現状を正確に認識した上で、そんな言語を「ぶっちゃけ始めるのにいい言語」として
他人にお薦めしますか?
もちろん実世界の閉じた世界で何も知らない初心者を相手にして、優越感に浸る手段とはなるのでしょうけれど
2020/09/08(火) 09:26:52.11ID:01u98+/t
評価軸の1つとしてそういうことを気にする人もいるというのはわからないでもないけど、Pythonは普通に「ぶっちゃけ始めるのにいい言語」としては上位の方でしょ。
お勧めリストとして、RubyをPytnonより上位に位置付ける人よりも、その逆の人の方が圧倒的に多いと思うけど。
お勧めリストとして、RubyをPytnonより上位に位置付ける人よりも、その逆の人の方が圧倒的に多いと思うけど。
2020/09/08(火) 17:57:04.25ID:Rm9gieqX
インデントしてりゃそれが制御の範囲を示すんだって頭が
できちゃうのは副作用でかくないか?
できちゃうのは副作用でかくないか?
2020/09/08(火) 18:09:43.81ID:jZ8u+myy
2020/09/08(火) 20:03:16.04ID:4Q+xgnjB
なんかやべーやつが居座ってるスレなのは把握
2020/09/08(火) 22:56:44.01ID:WZqhOJW2
>>30
そこまで頭の悪い人はいないでしょ。
「VBAから入ると変数宣言はDimでやるんだという頭ができちゃうから副作用がでかい」とか考えるならそうかもしれないが。
両方やった上でインデントが強制されるのは窮屈だから御免被りたいという意見は十分ありうるとは思うが。
そこまで頭の悪い人はいないでしょ。
「VBAから入ると変数宣言はDimでやるんだという頭ができちゃうから副作用がでかい」とか考えるならそうかもしれないが。
両方やった上でインデントが強制されるのは窮屈だから御免被りたいという意見は十分ありうるとは思うが。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】 アメリカ議会 「中国が台湾武力侵攻する準備を急速進展中」 [お断り★]
- 「二枚舌は許されない」中国外務省 高市総理の発言を批判… [BFU★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★8 [樽悶★]
- 中国国際航空が日本便を減便へ、春節休みも SNSでは投稿相次ぐ [七波羅探題★]
- 【速報】公然わいせつの疑いで逮捕・送検・略式起訴のAぇ! group 草間リチャード敬太メンバー 脱退を発表 「心の病の療養」に専念 [Ailuropoda melanoleuca★]
- 小野田紀美 経済安保相「悪いことをする外国人、日本にいない状況つくる」 [Hitzeschleier★]
- 【実況】博衣こよりのえちえちお子様ランチ🛸💜🥀🧪🍃
- 安倍岸田菅石破「台湾有事が日本の存立危機事態かは言わない」高市「台湾有事はどう考えても日本の存立危機事態」 [931948549]
- 岡田克也、歴史的な高市台湾答弁を「聞いた瞬間に『まずい』と思った」と振り返る。 [974680522]
- 【悲報】高市有事、中国から追加の報復措置が来る模様 [834922174]
- 世間はすでに興味を失った「高市台湾発言」でここが一生盛り上がってる理由、誰にもわからない [339315852]
- 恐ろしい😈のちゅちょちゅちょ・ちぇびるのお🏡
