パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Twitterで「三項演算子」がトレンド入り」記事へのコメント

  • 発端? (スコア:3, 参考になる)

    by Anonymous Coward

    きっかけはこのおもしろい(オブラートに包んだ表現)ツイートではないかな

    https://twitter.com/fnya/status/1192036095820615680 [twitter.com]

    • C言語で条件の部分が数値にしか見えない場合は可読性が多少上がるかもしれない。
      ブール型の扱いが厳密な言語なら可読性があるように書かないとコンパイルエラーになるから、そういう言語しか使ってなければおかしく見えるかもね。

      • by Anonymous Coward

        最近、

        (cond) ? (a = 1) : (a = 2);

        ってコードを見かけてちょっと頭を抱えた。

        if (cond) { a = 1; } else { a = 2; }

        a = (cond) ? 1 : 2;

        か、どっちかにしろ、と。

        三項演算子は「代入処理は一つ(代入先は同じ)」であることを明確にできるのが、ifに対するメリットだと思うが、この例だと台無しというか両方の悪いところ取りでもう。
        一番可読性いいのは、

        a

        • by Anonymous Coward on 2019年11月09日 10時41分 (#3713397)

          ALGOLからLisp、ML、Haskellあたりの関数型言語は大抵if式ですね。
          Smalltalkのやつも式と言うのかな

          親コメント
          • by ukenerai (36532) on 2019年11月09日 19時34分 (#3713645) 日記

            Excelの=if()が恥ずかしげに顔を出します

            # もうすぐ冬ですね

            --
            -- う~ん、バッドノウハウ?
            親コメント
          • by Anonymous Coward

            SNOBOLは構造化プログラミングが提唱される以前の言語であるため、ループは基本的に無条件分岐(goto文)で行われる。全ての式は実行後、次に処理する行のラベルを選択でき、省略時は次の行が実行される。標準入出力はINPUT/OUTPUTという変数に代入処理を行うことで実行される。if文に相当する物は無く、代わりに式を実行後、成功か失敗かで次に処理する行を変更することができる。これは具体的には

                    LINE = INPUT :S(LABEL1) F(LABEL2)
            のような場合(これは標準入力から1行読み込み変数 LINEに代入している)、その処理が成

            • by Anonymous Coward

              SNOBOLは学生の頃に授業で使わされたことがあります。
              数年前(数年先輩)の学生が、学科のコンピュータ用に処理系を作ったと聞きました。
              可変長の文字列処理に長けた言語という印象だけ残っていますが、ほとんど覚えていません。

              内容のないコメントですが、懐かしかったので。

普通のやつらの下を行け -- バッドノウハウ専門家

処理中...