プログラマが頭を使う部分、オリジナリティを発揮できる部分が、
()の中と、
[]の中だけであって、
その他の部分は、よくよく考えると「決まりに忠実に従うだけ」
のような気がする。
そこで、言語を問わず、if() for() while() の()の中、
関数、クラスの () の中、
配列の[]の中などをどのように記述するかを議論したいと思う。
更に、戻り値のreturnの指定方法についても同時に考えるスレです。
(或いは、break, continueなど)
探検
条件文、引数、戻り値指定について考えるスレ【(), [], return】 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2016/12/31(土) 19:12:39.83ID:CS9EEzAV2016/12/31(土) 19:14:27.22ID:2NsOdIiQ
> プログラマが頭を使う部分、オリジナリティを発揮できる部分
それは名前
クラス名、関数名、変数名
適切なファイルに適切なコードを書いて
適切な名前をつける。
そこが一番オリジナリティをはっきりできる場所だ。
それすらわかってない素人は引っ込んでろ
それは名前
クラス名、関数名、変数名
適切なファイルに適切なコードを書いて
適切な名前をつける。
そこが一番オリジナリティをはっきりできる場所だ。
それすらわかってない素人は引っ込んでろ
2016/12/31(土) 19:16:46.22ID:2NsOdIiQ
ぶっちゃけ関数の中なんて適当でいい。
もちろんシンプルであるべきだけどそれは最善の場合であって
最低限、引数と戻り値というインターフェースが
適切であればそれでいい。
そのインターフェースが適切かどうかを判断する
方法の一つが、適切な名前であるかどうかでもある。
もちろんシンプルであるべきだけどそれは最善の場合であって
最低限、引数と戻り値というインターフェースが
適切であればそれでいい。
そのインターフェースが適切かどうかを判断する
方法の一つが、適切な名前であるかどうかでもある。
2016/12/31(土) 19:18:29.21ID:2NsOdIiQ
関数、クラスなどのインターフェースが適切であれば
テストコードを容易に書くことができる。
テストコードがあれば、中身は後からシンプルに変えることもできる。
重要なのは中身ではなくてインターフェス
テストコードを容易に書くことができる。
テストコードがあれば、中身は後からシンプルに変えることもできる。
重要なのは中身ではなくてインターフェス
2016/12/31(土) 19:18:50.97ID:pO5qSVhA
MZ何とかじゃねーの?
こんなんコンパイラ作りたいと思ってるあほ以外興味ないやろ
こんなんコンパイラ作りたいと思ってるあほ以外興味ないやろ
6片山博文MZ ◆T6xkBnTXz7B0
2016/12/31(土) 19:25:30.86ID:JCMJkH4b ワガハイ デハ ナイ。
2016/12/31(土) 19:25:47.13ID:2NsOdIiQ
そもそも従来の if() for() while() は使わない時代になっている。
関数型の文化が取り入れらてきた結果
条件分岐やループを使う機会そのものが減っている。
アルゴリズムと呼ばれるものはたいていライブラリ化されそれを呼ぶだけ。
関数は数行程度にするべきだし、そこにオリジナリティを発揮するようなコードが
出てくることは殆ど無い。シンプルを追求するわけだから、最小のコードに収束する
関数型の文化が取り入れらてきた結果
条件分岐やループを使う機会そのものが減っている。
アルゴリズムと呼ばれるものはたいていライブラリ化されそれを呼ぶだけ。
関数は数行程度にするべきだし、そこにオリジナリティを発揮するようなコードが
出てくることは殆ど無い。シンプルを追求するわけだから、最小のコードに収束する
8デフォルトの名無しさん
2016/12/31(土) 19:43:41.18ID:CS9EEzAV 2NsOdIiQへの反論
そのオブジェクト指向の構造も突き詰めれば
if() for() while() を使用した基本構造からな成り立っている。
各言語や、ライブラリ毎に別々の名前別々の文法が定義され
言語や仕様が変われば、その「名前」や文法は毎回覚えなければ
ならない。それらが滞りなく動くには、それなりに繋げなければ、
ならないし、「繋げる」ためには細かくて複雑で、なおかつ
時と共に変化しやすいルールを沢山覚えなければならない。
それは仕様やルールに支配されている状態と言えるだろう。
それらも大切じゃないわけではないと思う。だけど
2NsOdIiQの意見にはは真っ向から批判したいと思う。
そのオブジェクト指向の構造も突き詰めれば
if() for() while() を使用した基本構造からな成り立っている。
各言語や、ライブラリ毎に別々の名前別々の文法が定義され
言語や仕様が変われば、その「名前」や文法は毎回覚えなければ
ならない。それらが滞りなく動くには、それなりに繋げなければ、
ならないし、「繋げる」ためには細かくて複雑で、なおかつ
時と共に変化しやすいルールを沢山覚えなければならない。
それは仕様やルールに支配されている状態と言えるだろう。
それらも大切じゃないわけではないと思う。だけど
2NsOdIiQの意見にはは真っ向から批判したいと思う。
2016/12/31(土) 19:47:27.84ID:+3Mz6rOl
マ板でやれ
2017/01/01(日) 00:16:22.10ID:yOnXwyd5
>>8
それで批判はまだ?
それで批判はまだ?
2017/01/01(日) 13:54:13.08ID:IDYigKuX
if() 等の分岐はオブジェクトの多態性(OOPの特性)で、for() の主要な用途である要素の列挙処理も
for() を使わずに配列などのコレクションに対する直接的な作用として記述可能(関数型の影響)で、
さらに、if() for() while() が他と関数(オブジェクト指向の場合はメソッドと呼ぶが)と同様の呼び出し記述
(メッセージ送信)で済ませることが可能な Smalltalk 等の場合、記述は簡潔でルールも少ないまま保たれているよ
for() を使わずに配列などのコレクションに対する直接的な作用として記述可能(関数型の影響)で、
さらに、if() for() while() が他と関数(オブジェクト指向の場合はメソッドと呼ぶが)と同様の呼び出し記述
(メッセージ送信)で済ませることが可能な Smalltalk 等の場合、記述は簡潔でルールも少ないまま保たれているよ
12デフォルトの名無しさん
2017/01/01(日) 17:12:28.54ID:SJYwRSMl 2NsOdIiQは情弱
2017/01/01(日) 22:22:13.84ID:Eox67xHv
>>2
被らない名前さえ付けとけば、後でいくらでも変えられるから、適当で良い。
被らない名前さえ付けとけば、後でいくらでも変えられるから、適当で良い。
2017/01/01(日) 22:24:04.06ID:yOnXwyd5
2017/01/01(日) 22:24:56.15ID:yOnXwyd5
被らない名前って連番かしら?w
func0001
func0002
func0003
func0001
func0002
func0003
2017/01/01(日) 23:57:12.62ID:SJYwRSMl
名前ってアルゴリズムやデータ構造より大事なん??
なぜ名前が重要?
なぜ名前が重要?
2017/01/02(月) 00:23:37.80ID:PvWoAsR2
>>16
もしアルゴリズムやデータ構造に
名前がない所を想像してみればいい。
どうやって他人にそれを理解させる?
でてくるたびにコードを読まなければ
それが何かが理解できないだろ?
名前が適切でないと時間を無駄に費やすことになるんだよ。
もしアルゴリズムやデータ構造に
名前がない所を想像してみればいい。
どうやって他人にそれを理解させる?
でてくるたびにコードを読まなければ
それが何かが理解できないだろ?
名前が適切でないと時間を無駄に費やすことになるんだよ。
18デフォルトの名無しさん
2017/01/02(月) 01:07:43.46ID:BEa65uUQ でも名前という殻ができたら、もう誰も中身を見ようとしないだろ?
名前
名前の名前
名前の名前の名前
場所の名前
名前の場所
場所の名前の場所
名前の場所の名前…
これが連鎖したら実際に動いている本体がなんなのか、どこにあるのか、何がしたいのか、
何が悪いのか、わからんくなるやろ。
名前
名前の名前
名前の名前の名前
場所の名前
名前の場所
場所の名前の場所
名前の場所の名前…
これが連鎖したら実際に動いている本体がなんなのか、どこにあるのか、何がしたいのか、
何が悪いのか、わからんくなるやろ。
2017/01/02(月) 02:02:47.84ID:PvWoAsR2
> でも名前という殻ができたら、もう誰も中身を見ようとしないだろ?
見れる状態であれば、見る必要があるときだけ見ればいい。
標準ライブラリの中身は見ないだろ
見れる状態であれば、見る必要があるときだけ見ればいい。
標準ライブラリの中身は見ないだろ
2017/01/02(月) 02:03:47.65ID:PvWoAsR2
可読性を高くするというのは言い換えると
見なくていいものを増やすということ
見ないでも分かるものが増えれば増えるほど
読むものが減る=可読性が高くなる
見なくていいものを増やすということ
見ないでも分かるものが増えれば増えるほど
読むものが減る=可読性が高くなる
2017/01/02(月) 02:13:28.17ID:BEa65uUQ
そしたらさ、何よりつまらなくないか?
そして本当に動くのか最後この最後に確認できるまで不安にならないか?
そして、もし記述がちょっとでも間違ったらやはり、動かないだろ?
デバッグしようにもアルゴリズム的なデバッグとちがい、ひたすら「その名前のものは見当たらなかった」と格闘するだけだろ。
そして本当に動くのか最後この最後に確認できるまで不安にならないか?
そして、もし記述がちょっとでも間違ったらやはり、動かないだろ?
デバッグしようにもアルゴリズム的なデバッグとちがい、ひたすら「その名前のものは見当たらなかった」と格闘するだけだろ。
2017/01/02(月) 02:40:58.61ID:sbuuZSUp
人によって言語とか開発環境とか作ってる物とかチームや企業の方針とかのバックグラウンドが違うし、
みんな自分のバックグラウンドを前提に話すから話が?み合わない事は良くあるけどさ
>>21が良く分からない
みんな自分のバックグラウンドを前提に話すから話が?み合わない事は良くあるけどさ
>>21が良く分からない
2017/01/02(月) 04:12:43.21ID:PvWoAsR2
まだ小さなファイルに分割することを
知らない段階なんだろ
知らない段階なんだろ
24デフォルトの名無しさん
2017/01/03(火) 22:54:15.37ID:jYOP1H4c2017/01/04(水) 01:51:56.24ID:M78fqhv6
> それはさておきスマートな条件文を考えるのは大切っしょ。
誰も賛同してないことに気づけよw
誰も賛同してないことに気づけよw
2017/01/04(水) 21:31:57.62ID:/ewDC4oi
27デフォルトの名無しさん
2017/01/04(水) 22:49:19.43ID:xL7XSQ6Y とりあえず=> <= === != && || 使用禁止
この演算子使うやつは屑
この演算子使うやつは屑
2017/01/05(木) 04:37:39.69ID:G8Tvk5br
理由が書いてないルールは不完全。
不完全なルールは存在してないものとみなすべき。
不完全なルールは存在してないものとみなすべき。
2017/01/06(金) 12:01:04.96ID:Iab1DByP
理由はそういうルールと決めたから
2017/01/07(土) 00:25:49.34ID:jcRWOLCk
それはルールを決めた理由であって
ルールの理由ではない
ルールの理由ではない
2017/01/07(土) 10:00:54.74ID:J5F8f7k5
言語ごとに異なる演算子を使うのは
たしかに愚かなことだ
しかし、=> === 以外はデファクトスタンダードだよな?
たしかに愚かなことだ
しかし、=> === 以外はデファクトスタンダードだよな?
2017/01/07(土) 13:26:36.81ID:jcRWOLCk
Rubyでは || は 変数が空だったら入れるというイディオムでよく使われている。
nilガードって名前がついているぐらい。
&& はショートカット演算子ともいわれてこれまたよく使われる。
=== は言語によっては==の機能強化版になってるのでよく使われる。
!= はunlessがない言語ではこっちのほうが可読性が高い
=> はJavaScriptではアロー関数式、Perlではファットカンマだが
演算子として使われているのはしらない。
<= が使える言語なんてあるのか?
nilガードって名前がついているぐらい。
&& はショートカット演算子ともいわれてこれまたよく使われる。
=== は言語によっては==の機能強化版になってるのでよく使われる。
!= はunlessがない言語ではこっちのほうが可読性が高い
=> はJavaScriptではアロー関数式、Perlではファットカンマだが
演算子として使われているのはしらない。
<= が使える言語なんてあるのか?
33デフォルトの名無しさん
2017/01/07(土) 20:05:40.15ID:R19tnpIk pythonのイテレータ文法とスライスが簡潔かつ最強
2017/01/11(水) 11:44:23.20ID:fVqO33jl
既知のキーワードで書けるLINQ文法こそ至高
2017/05/25(木) 00:26:49.97ID:DOX+5Pt+
>>32
<= は Verilog の代入で使う。
<= は Verilog の代入で使う。
36デフォルトの名無しさん
2018/05/23(水) 22:42:31.84ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
ERUWP
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
ERUWP
37デフォルトの名無しさん
2018/07/04(水) 23:24:41.90ID:gFgZc5FG DAK
38デフォルトの名無しさん
2018/10/27(土) 17:00:28.02ID:z2xID8Zb ()
2018/12/05(水) 09:47:53.59ID:OM2KUSVi
>>32
<= 使えないとどうやって「x が 10 以下」を表すんだよ?
<= 使えないとどうやって「x が 10 以下」を表すんだよ?
2018/12/07(金) 11:25:35.96ID:BUuGF4Ds
-le
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★3 [蚤の市★]
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 日本人の間で脱税がブーム 所得税の追徴課税額1400億円超、過去最高 [402859164]
- 女の子集合!
- 今年の漢字、きょう発表😉 [583597859]
- 中国人、超ド正論。「チベットやウイグルに住んでるのはチベット族やウイグル族だが、アイヌから奪った土地に住んでる日本人こそ侵略者」 [314039747]
- 百合営業してるアイドル「これは営業だから…んっクチュクチュ」←これ
- 【悲報】メモリだけでなくSSDも値上がりがはじまる♥
