板検索:
条件文、引数、戻り値指定について考えるスレ【(), [], return】 (35)
まとめビュー
1
デフォルトの名無しさん[]   投稿日:2016/12/31 19:12:39  ID:CS9EEzAV.net(2)
プログラマが頭を使う部分、オリジナリティを発揮できる部分が、
()の中と、
[]の中だけであって、
その他の部分は、よくよく考えると「決まりに忠実に従うだけ」
のような気がする。

そこで、言語を問わず、if() for() while() の()の中、
関数、クラスの () の中、
配列の[]の中などをどのように記述するかを議論したいと思う。

更に、戻り値のreturnの指定方法についても同時に考えるスレです。
(或いは、break, continueなど)
コメント2件


2
デフォルトの名無しさん[sage]   投稿日:2016/12/31 19:14:27  ID:2NsOdIiQ.net(4)
> プログラマが頭を使う部分、オリジナリティを発揮できる部分

それは名前

クラス名、関数名、変数名
適切なファイルに適切なコードを書いて
適切な名前をつける。

そこが一番オリジナリティをはっきりできる場所だ。
それすらわかってない素人は引っ込んでろ
コメント2件

3
デフォルトの名無しさん[sage]   投稿日:2016/12/31 19:16:46  ID:2NsOdIiQ.net(4)
ぶっちゃけ関数の中なんて適当でいい。

もちろんシンプルであるべきだけどそれは最善の場合であって
最低限、引数と戻り値というインターフェースが
適切であればそれでいい。

そのインターフェースが適切かどうかを判断する
方法の一つが、適切な名前であるかどうかでもある。

4
デフォルトの名無しさん[sage]   投稿日:2016/12/31 19:18:29  ID:2NsOdIiQ.net(4)
関数、クラスなどのインターフェースが適切であれば
テストコードを容易に書くことができる。

テストコードがあれば、中身は後からシンプルに変えることもできる。
重要なのは中身ではなくてインターフェス

5
デフォルトの名無しさん[sage]   投稿日:2016/12/31 19:18:50  ID:pO5qSVhA.net
MZ何とかじゃねーの?
こんなんコンパイラ作りたいと思ってるあほ以外興味ないやろ

6
片山博文MZ ◆T6xkBnTXz7B0 [sage]   投稿日:2016/12/31 19:25:30  ID:JCMJkH4b.net
ワガハイ デハ ナイ。

7
デフォルトの名無しさん[sage]   投稿日:2016/12/31 19:25:47  ID:2NsOdIiQ.net(4)
そもそも従来の if() for() while() は使わない時代になっている。
関数型の文化が取り入れらてきた結果
条件分岐やループを使う機会そのものが減っている。

アルゴリズムと呼ばれるものはたいていライブラリ化されそれを呼ぶだけ。
関数は数行程度にするべきだし、そこにオリジナリティを発揮するようなコードが
出てくることは殆ど無い。シンプルを追求するわけだから、最小のコードに収束する

8
デフォルトの名無しさん[]   投稿日:2016/12/31 19:43:41  ID:CS9EEzAV.net(2)
2NsOdIiQへの反論
そのオブジェクト指向の構造も突き詰めれば
if() for() while() を使用した基本構造からな成り立っている。
各言語や、ライブラリ毎に別々の名前別々の文法が定義され
言語や仕様が変われば、その「名前」や文法は毎回覚えなければ
ならない。それらが滞りなく動くには、それなりに繋げなければ、
ならないし、「繋げる」ためには細かくて複雑で、なおかつ
時と共に変化しやすいルールを沢山覚えなければならない。
それは仕様やルールに支配されている状態と言えるだろう。
それらも大切じゃないわけではないと思う。だけど
2NsOdIiQの意見にはは真っ向から批判したいと思う。
コメント1件

9
デフォルトの名無しさん[sage]   投稿日:2016/12/31 19:47:27  ID:+3Mz6rOl.net
マ板でやれ

10
デフォルトの名無しさん[sage]   投稿日:2017/01/01 00:16:22  ID:yOnXwyd5.net(3)
>8
それで批判はまだ?

11
デフォルトの名無しさん[sage]   投稿日:2017/01/01 13:54:13  ID:IDYigKuX.net
if() 等の分岐はオブジェクトの多態性(OOPの特性)で、for() の主要な用途である要素の列挙処理も
for() を使わずに配列などのコレクションに対する直接的な作用として記述可能(関数型の影響)で、
さらに、if() for() while() が他と関数(オブジェクト指向の場合はメソッドと呼ぶが)と同様の呼び出し記述
(メッセージ送信)で済ませることが可能な Smalltalk 等の場合、記述は簡潔でルールも少ないまま保たれているよ

12
デフォルトの名無しさん[]   投稿日:2017/01/01 17:12:28  ID:SJYwRSMl.net(2)
2NsOdIiQは情弱

13
デフォルトの名無しさん[sage]   投稿日:2017/01/01 22:22:13  ID:Eox67xHv.net
>2
被らない名前さえ付けとけば、後でいくらでも変えられるから、適当で良い。
コメント1件

14
デフォルトの名無しさん[sage]   投稿日:2017/01/01 22:24:04  ID:yOnXwyd5.net(3)
>13
名前をつけるタイミングは問題にしていない
最終的には一番重要な名前を正しくつけろという話だ

15
デフォルトの名無しさん[sage]   投稿日:2017/01/01 22:24:56  ID:yOnXwyd5.net(3)
被らない名前って連番かしら?w

func0001
func0002
func0003

16
デフォルトの名無しさん[sage]   投稿日:2017/01/01 23:57:12  ID:SJYwRSMl.net(2)
名前ってアルゴリズムやデータ構造より大事なん??
なぜ名前が重要?
コメント1件

17
デフォルトの名無しさん[sage]   投稿日:2017/01/02 00:23:37  ID:PvWoAsR2.net(4)
>16
もしアルゴリズムやデータ構造に
名前がない所を想像してみればいい。

どうやって他人にそれを理解させる?
でてくるたびにコードを読まなければ
それが何かが理解できないだろ?

名前が適切でないと時間を無駄に費やすことになるんだよ。

18
デフォルトの名無しさん[]   投稿日:2017/01/02 01:07:43  ID:BEa65uUQ.net(2)
でも名前という殻ができたら、もう誰も中身を見ようとしないだろ?
名前
名前の名前
名前の名前の名前
場所の名前
名前の場所
場所の名前の場所
名前の場所の名前…

これが連鎖したら実際に動いている本体がなんなのか、どこにあるのか、何がしたいのか、
何が悪いのか、わからんくなるやろ。

19
デフォルトの名無しさん[sage]   投稿日:2017/01/02 02:02:47  ID:PvWoAsR2.net(4)
> でも名前という殻ができたら、もう誰も中身を見ようとしないだろ?

見れる状態であれば、見る必要があるときだけ見ればいい。
標準ライブラリの中身は見ないだろ

20
デフォルトの名無しさん[sage]   投稿日:2017/01/02 02:03:47  ID:PvWoAsR2.net(4)
可読性を高くするというのは言い換えると
見なくていいものを増やすということ

見ないでも分かるものが増えれば増えるほど
読むものが減る=可読性が高くなる

21
デフォルトの名無しさん[sage]   投稿日:2017/01/02 02:13:28  ID:BEa65uUQ.net(2)
そしたらさ、何よりつまらなくないか?
そして本当に動くのか最後この最後に確認できるまで不安にならないか?
そして、もし記述がちょっとでも間違ったらやはり、動かないだろ?
デバッグしようにもアルゴリズム的なデバッグとちがい、ひたすら「その名前のものは見当たらなかった」と格闘するだけだろ。
コメント1件

22
デフォルトの名無しさん[sage]   投稿日:2017/01/02 02:40:58  ID:sbuuZSUp.net
人によって言語とか開発環境とか作ってる物とかチームや企業の方針とかのバックグラウンドが違うし、
みんな自分のバックグラウンドを前提に話すから話が?み合わない事は良くあるけどさ
>21が良く分からない

23
デフォルトの名無しさん[sage]   投稿日:2017/01/02 04:12:43  ID:PvWoAsR2.net(4)
まだ小さなファイルに分割することを
知らない段階なんだろ

24
デフォルトの名無しさん[]   投稿日:2017/01/03 22:54:15  ID:jYOP1H4c.net
>1 が唯一頭を使う部分をきっぱりと明言しちゃったのに対し、
>2 が食いついたせいで論点がずれ取るがな、
オブジェクト指向云々はさておき
それはさておきスマートな条件文を考えるのは大切っしょ。

25
デフォルトの名無しさん[sage]   投稿日:2017/01/04 01:51:56  ID:M78fqhv6.net
> それはさておきスマートな条件文を考えるのは大切っしょ。
誰も賛同してないことに気づけよw

26
デフォルトの名無しさん[sage]   投稿日:2017/01/04 21:31:57  ID:/ewDC4oi.net
スマートな条件文ってなにさ
if文書くなら誰が見てもわかる≒C言語を踏襲すべきだしスマートにするならhaskell的にもはやif文じゃなくなる
前提からして変なんだよ>1

27
デフォルトの名無しさん[]   投稿日:2017/01/04 22:49:19  ID:xL7XSQ6Y.net
とりあえず=> <= === != && || 使用禁止
この演算子使うやつは屑

28
デフォルトの名無しさん[sage]   投稿日:2017/01/05 04:37:39  ID:G8Tvk5br.net
理由が書いてないルールは不完全。
不完全なルールは存在してないものとみなすべき。

29
デフォルトの名無しさん[sage]   投稿日:2017/01/06 12:01:04  ID:Iab1DByP.net
理由はそういうルールと決めたから

30
デフォルトの名無しさん[sage]   投稿日:2017/01/07 00:25:49  ID:jcRWOLCk.net(2)
それはルールを決めた理由であって
ルールの理由ではない

31
デフォルトの名無しさん[sage]   投稿日:2017/01/07 10:00:54  ID:J5F8f7k5.net
言語ごとに異なる演算子を使うのは
たしかに愚かなことだ

しかし、=> === 以外はデファクトスタンダードだよな?

32
デフォルトの名無しさん[sage]   投稿日:2017/01/07 13:26:36  ID:jcRWOLCk.net(2)
Rubyでは || は 変数が空だったら入れるというイディオムでよく使われている。
nilガードって名前がついているぐらい。

&& はショートカット演算子ともいわれてこれまたよく使われる。

=== は言語によっては==の機能強化版になってるのでよく使われる。

!= はunlessがない言語ではこっちのほうが可読性が高い

=> はJavaScriptではアロー関数式、Perlではファットカンマだが
演算子として使われているのはしらない。

<= が使える言語なんてあるのか?
コメント1件

33
デフォルトの名無しさん[]   投稿日:2017/01/07 20:05:40  ID:R19tnpIk.net
pythonのイテレータ文法とスライスが簡潔かつ最強

34
デフォルトの名無しさん[sage]   投稿日:2017/01/11 11:44:23  ID:fVqO33jl.net
既知のキーワードで書けるLINQ文法こそ至高

35
デフォルトの名無しさん[sage]   投稿日:2017/05/25 00:26:49  ID:DOX+5Pt+.net
>32
<= は Verilog の代入で使う。
更新情報
・スレッド一覧ページで過去ログのタイトル検索・一覧表示ができるようになりました(2016/1/20)
NGワード登録
登録する
スレッド内検索

プログラム板 タイトル検索

このスレッドが人気です(実況系)
NEWS23★1 (1001)TBS実況
NEWS ZERO 2 (415)NTV実況
【マターリ】クレイジージャーニーSP★2【マターリ】&#169;2ch.net (851)TBS実況
歴史のへ〜、ほ〜 あなたの常識が変わります!★2 (710)NHK実況
クレイジージャーニーSP 少数民族を愛する写真家・ヨシダナギ&爬虫類ハンター★10 (597)TBS実況
熱闘甲子園 大会第8日 (410)テレ朝実況
良かれと思って!【初公開!芸能人自慢の家を住宅のプロがメッタ斬り】 (964)フジ実況
刑事7人 第3シリーズ #6★2 (856)テレ朝実況
このスレッドが人気です(ニュース系)
【話題】<牛乳石鹸>広告が炎上!「もう買わない」の声「意味不明」「ただただ不快」批判殺到!★2 (418)音楽・芸能ニュース
【詐欺師】YouTuberヒカルがインサイダー疑惑で炎上 疑似株式サービスVALU(バリュー) ★8 (1001)音楽・芸能ニュース
【話題】<牛乳石鹸>広告が炎上!「もう買わない」の声「意味不明」「ただただ不快」批判殺到! (1002)音楽・芸能ニュース
【詐欺師】YouTuberヒカルがインサイダー疑惑で炎上 疑似株式サービスVALU(バリュー) ★9 (73)音楽・芸能ニュース
【野球】セ・リーグ T3-5C[8/16] 松山先制打に西川・安部・新井・岩本適時打!5適時打広島M「26」 阪神藤浪復帰も制球改善せず (312)音楽・芸能ニュース
【テニス】錦織圭 今年の残り試合欠場を発表 右手首の腱損傷…来年に備え (979)音楽・芸能ニュース
【米国】白人至上主義めぐる衝突 トランプ大統領「双方に責任」に批判高まる 白人至上主義団体(KKK)は称賛★3 (1001)ニュー速+
【ボクシング】山中慎介「効いてなかった」タオル投入に帝拳ジム会長「(トレーナーの)個人的な感情が入った。最悪」★8 (594)音楽・芸能ニュース
プログラム板の人気スレ
オブジェクト指向システムの設計 173 (186)
ふらっと C#,C♯,C#(初心者用) Part130 (491)
Excel VBA 質問スレ Part49 (791)
【初心者歓迎】C/C++室 Ver.101【環境依存OK】 (462)
【統計分析】機械学習・データマイニング17 (139)
次世代言語議論スレ[Go Rust Scala Haskell]第5世代 (830)
スレ立てるまでもない質問はここで 148匹目 (933)
Ruby 初心者スレッド Part 60 (908)
Xamarin Part5 (386)
Visual Studio 2017 Part2 (1001)
Pythonのお勉強 Part53 (736)
本当に必要ものは人工知能ではなくて検索エンジン (363)
Java入門・初心者質問スレ Part.4 (323)
プログラミング言語 Rust 3 (594)
C++相談室 part131 (132)
C#, C♯, C#相談室 Part94 (705)
ねねっちと一緒にプログラムを勉強するスレ第2話 (920)
Swift part11 (238)
Git 15 (988)
推薦図書/必読書のためのスレッド 81 (905)
関数型プログラミング言語Haskell Part30 (887)
C# vs Java どっちが好き? その3 (603)
☆★Java質問・相談スレッド180★★ (461)
Androidプログラミング質問スレ revision53 (727)
Visual Studio 2015 Part8 (797)
このサイトについて
このサイトは2ちゃんねるからデータを取得し、表示するサービスです。
画像のインライン表示機能について
画像のURLの後ろにある[画像をインライン表示]をクリックすると、URLの下に表示します。
表示される画像は横幅100pxに縮小されていて、クリックすると原寸で表示します。
このサイトの特徴
1)スレッド内検索ができます
2)レス(「>>1」など)のポップアップができます
3)不適切な言葉を含む投稿を表示しません
4)ページ内で画像を直接表示できます
5)2ch他スレッドへのリンクはタイトル・板名つきでリンクします
6)すっきりとしたデザインで表示します
7)最新スレや前スレをチェック・一覧表示します
8)NGワード機能の搭載でイヤな言葉が目に入りません
9)荒らしを自動チェックします
10)スレッド内・同一IDの書き込みだけ表示できます
11)レスの返事をレスされた発言の下に表示する「まとめビュー」が利用できます
12)シリーズ化したスレッドの一覧を表示します
13)最新のスレッドがある場合はお知らせします
削除について
こちらをご覧ください
機能要望について
現在機能要望受付中です。
問い合わせについて
こちらのページからどうぞ
広告


首都圏の方、ソフトバンク光オススメですよ


このサイトは2ch.scからデータを取得・表示しています。削除などについてはこちらをご覧ください。 アクセスモード:差分取得 - 新着書き込みなし(304)