回答編集履歴
5
更新
    
        answer	
    CHANGED
    
    | @@ -48,16 +48,16 @@ | |
| 48 48 | 
             
            ```python
         | 
| 49 49 | 
             
            def f(a, b):
         | 
| 50 50 | 
             
                if a < b:
         | 
| 51 | 
            -
                    return  | 
| 51 | 
            +
                    return c()
         | 
| 52 52 | 
             
                else:
         | 
| 53 | 
            -
                    return  | 
| 53 | 
            +
                    return d()
         | 
| 54 54 | 
             
            ```
         | 
| 55 55 | 
             
            より
         | 
| 56 56 | 
             
            ```python
         | 
| 57 | 
            -
            f=lambda a,b: a<b and  | 
| 57 | 
            +
            f=lambda a,b: a<b and c() or d()
         | 
| 58 58 | 
             
            ```
         | 
| 59 | 
            -
            の方が短い、ただし` | 
| 59 | 
            +
            の方が短い、ただし`c()`が真値を返すという保証がある場合だけ、みたいな話だったのではないでしょうか?
         | 
| 60 60 |  | 
| 61 | 
            -
            それなら`min`では済まないし、`f=lambda a,b:[ | 
| 61 | 
            +
            それなら`min`では済まないし、`f=lambda a,b:[c(),d()][a<b]`でも解決しない(`c()`と`d()`の2つの式が両方評価されてしまう)ので多少の意味はあるかな、と思いました。
         | 
| 62 62 |  | 
| 63 63 | 
             
            そういう前提とかいったものが伝言ゲームの過程で無くなっていって、まったくの無意味な話になったのではないかな、と想像します。
         | 
4
さらに考察
    
        answer	
    CHANGED
    
    | @@ -38,4 +38,26 @@ | |
| 38 38 | 
             
            ```
         | 
| 39 39 | 
             
            ~~の方が短いだろ、と思いました。~~
         | 
| 40 40 |  | 
| 41 | 
            -
            ここは取り消します | 
| 41 | 
            +
            ここは取り消します
         | 
| 42 | 
            +
             | 
| 43 | 
            +
            ----
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            追記
         | 
| 46 | 
            +
             | 
| 47 | 
            +
            考えみたら`f=min`で済む内容なので(注:`min`が3回呼ばれる場合には`f`に束縛した方が全体を短くできる)そもそも話がおかしいわけで、ということはおおもとの趣旨は
         | 
| 48 | 
            +
            ```python
         | 
| 49 | 
            +
            def f(a, b):
         | 
| 50 | 
            +
                if a < b:
         | 
| 51 | 
            +
                    return hogehoge()
         | 
| 52 | 
            +
                else:
         | 
| 53 | 
            +
                    return fugafuga()
         | 
| 54 | 
            +
            ```
         | 
| 55 | 
            +
            より
         | 
| 56 | 
            +
            ```python
         | 
| 57 | 
            +
            f=lambda a,b: a<b and hogehoge() or fugafuga()
         | 
| 58 | 
            +
            ```
         | 
| 59 | 
            +
            の方が短い、ただし`hogehoge()`が真値を返すという保証がある場合だけ、みたいな話だったのではないでしょうか?
         | 
| 60 | 
            +
             | 
| 61 | 
            +
            それなら`min`では済まないし、`f=lambda a,b:[fugafuga(),hogehoge()][a<b]`でも解決しない(2つの式が両方評価されてしまう)ので多少の意味はあるかな、と思いました。
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            そういう前提とかいったものが伝言ゲームの過程で無くなっていって、まったくの無意味な話になったのではないかな、と想像します。
         | 
3
取り消します
    
        answer	
    CHANGED
    
    | @@ -32,8 +32,10 @@ | |
| 32 32 | 
             
            ----
         | 
| 33 33 | 
             
            追記
         | 
| 34 34 |  | 
| 35 | 
            -
            全く本筋じゃないですが
         | 
| 35 | 
            +
            ~~全く本筋じゃないですが~~
         | 
| 36 36 | 
             
            ```python
         | 
| 37 37 | 
             
            f=lambda a,b:[b,a][a<b]
         | 
| 38 38 | 
             
            ```
         | 
| 39 | 
            -
            の方が短いだろ、と思いました。
         | 
| 39 | 
            +
            ~~の方が短いだろ、と思いました。~~
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            ここは取り消します(追記)
         | 
2
追記
    
        answer	
    CHANGED
    
    | @@ -27,4 +27,13 @@ | |
| 27 27 | 
             
            と認識したのが誤りです。
         | 
| 28 28 |  | 
| 29 29 | 
             
            おそらくですが、**a>0かつb>0であることが前提として示されている**場合などにはこういうテクニックもあるよ、というような話だったんだろうと思います。
         | 
| 30 | 
            -
            (説明の時にうっかり省いてしまったのか、書いた人が理解できていないのかは判断できませんので、よい方で解釈すると、ということで)
         | 
| 30 | 
            +
            (説明の時にうっかり省いてしまったのか、書いた人が理解できていないのかは判断できませんので、よい方で解釈すると、ということで)
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            ----
         | 
| 33 | 
            +
            追記
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            全く本筋じゃないですが
         | 
| 36 | 
            +
            ```python
         | 
| 37 | 
            +
            f=lambda a,b:[b,a][a<b]
         | 
| 38 | 
            +
            ```
         | 
| 39 | 
            +
            の方が短いだろ、と思いました。
         | 
1
些細
    
        answer	
    CHANGED
    
    | @@ -15,12 +15,12 @@ | |
| 15 15 | 
             
            ```
         | 
| 16 16 | 
             
            と書く方が**短くて済む**という話だと思うのですけれど、これら2つのコードは同じ意味でもなければ、**同じ動きをするコードでもありません**。(理由と説明は他の方の回答の通りなので省きます)
         | 
| 17 17 |  | 
| 18 | 
            -
             | 
| 18 | 
            +
            その記事は悪く言うと**嘘**もしくは**間違い**、悪く言わなくても「使い道が限定されていることを端折っている正確ではない記事」です。
         | 
| 19 19 |  | 
| 20 20 |  | 
| 21 21 | 
             
            ----
         | 
| 22 22 |  | 
| 23 | 
            -
            つまり、 | 
| 23 | 
            +
            つまり、その記事を読んで
         | 
| 24 24 |  | 
| 25 25 | 
             
            > a<bが「偽」のときbが代入される
         | 
| 26 26 |  | 
