[過去ログ] 次世代言語12 Go Rust Swift Kotlin TypeScript (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
478
(6): デフォルトの名無しさん [sage] 2018/07/29(日) 16:09:52.04 ID:EbPqex13(1/2) AAS
メソッドチェーンがぱっとわかりやすいのも分かるが
リスト内包はリスト内包で数学やってりゃわかる可読性がある

リスト内包がわからんってわめき散らすの無知晒してるだけだからやめた方がいい

それはそれとしてPythonはもっと関数を横に繋げられるようにしてくれ
Elixirのパイプ演算子みたいな感じでさあ
503: デフォルトの名無しさん [sage] 2018/07/30(月) 21:32:39.35 ID:9zA5gDfM(1) AAS
>>478
「|」をオーバーロードしてるライブラリはある。
外部リンク[py]:github.com
俺は別に読みやすいと思わんが。
518
(1): デフォルトの名無しさん [] 2018/07/31(火) 15:00:19.27 ID:zoworXJJ(2/8) AAS
>>478
あのぅメソッドチェーンとは異なり、内包表記というのは
決して万能な道具ではないんですけど、ご存知ですか?

内包表記というのは、高階関数 map/filter とジェネレータという
三つの要素を簡潔に表現できる構文糖でしかありませんから、
内包表記では表現できない課題も数多く存在します
ですからたとえば Haskell では内包表記を提供する一方で、
ポイントフリーといふ関数を繋ぐ流れるようなスタイルでも書けます
つまり「メソッドチェーン vs. 内包表記」という対決の図式は成り立ちません

これでもまだ「リスト内包がわからんってわめき散らすの無知晒してるだけ」と
騒ぎたいなら、以下のお題(>>430-431)を内包表記だけで書いてみてください

 '-'.join(map(lambda x: str(x), reversed(sorted(a))))

>>478氏が無知でなければ、内包表記でサラッとエレガントなコードを書けますよね?
ちなみに以下のような三重にカッコが入れ子になった醜いコードは勘弁してくださいね

 '-'.join(str(x) for x in reveresed(sorted(a)))
519: デフォルトの名無しさん [] 2018/07/31(火) 15:33:57.86 ID:zoworXJJ(3/8) AAS
>>517
517(2): デフォルトの名無しさん [sage] 2018/07/31(火) 14:34:58.99 ID:U3QRqLaV(1) AAS
直積集合がタプルじゃなくて直積集合の要素がタプルな
んでもってn個の集合の直積を考える場合普通n=1は除外しない
>n個の集合の直積を考える場合普通n=1は除外しない

ええ、それが Python 村の中では「普通」で常識なんですよね
でも Python 村から一歩外に出れば:
  n個の集合の直積を考える、ここで n>=2
が「普通」なんですけど、ご存知でしたか?

たとえば手元の教科書(*1)だと、直積は以下のように定義されています
・2つの集合の直積 A × B = { <x, y> | x <- A, y <- B }
・3つの集合の直積 A × B × C = { <x, y, z> | x <- A, y <- B, z <- C }
・4つの集合の直積も同様に定義される
この本では n=1 は定義されていないし、個人としても定義のしようがないと考えます
で、ML/Haskell/Erlang/Prolog といったタプルというデータ構造が存在する言語でも、
「普通」n=1の直積を除外しており、これが世間の常識です
ちなみに「Python村の常識、世間の非常識」といふ格言、聞いたことありませぬか?

ところで、もちろん内包表記はご存知ですよね?
知らないと>>478氏に「無知晒してる」と嗤われちゃいますよ

*1:論理と計算のしくみ
  外部リンク:www.amazon.co.jp
521
(1): デフォルトの名無しさん [] 2018/07/31(火) 16:12:57.41 ID:zoworXJJ(4/8) AAS
>>520
520(1): デフォルトの名無しさん [sage] 2018/07/31(火) 16:01:29.91 ID:6M1+k6px(2/2) AAS
n=1もあるしn=0もある
n=0は直積の単位元いわゆるunit
直和の単位元はbottom
>n=1もあるしn=0もある
>n=0は直積の単位元いわゆるunit

たしかに Python 村の中では、n=0 も除外しないのが「普通」ですね

で、静的型付け言語の ML/Haskell では単位型(unit)として定義され
タプル型とは明確に区別されていますし、動的型付け言語では
nil という特別なアトムで表現することが多く、これが世間の常識です
ちなみに「Python村の常識、世間の非常識」といふ格言、聞いたことありませぬか?

ところで、もちろん内包表記はご存知ですよね?
知らないと>>478氏に「無知晒してる」と嗤われちゃいますよ
527: デフォルトの名無しさん [] 2018/07/31(火) 18:36:17.24 ID:zoworXJJ(6/8) AAS
>>478
>それはそれとしてPythonはもっと関数を横に繋げられるようにしてくれ
>Elixirのパイプ演算子みたいな感じでさあ

いや、新たにパイプ演算子みたいな構文を追加しなくても、
オブジェクト指向言語の Python であれば、メソッドチェーンで実現できるよ
だって、Python を除く今時のオブジェクト指向言語では実現できていますから
その具体例が >>430
430(3): デフォルトの名無しさん [] 2018/07/29(日) 11:10:11.43 ID:++hEM/7+(1/4) AAS
え、Python並みのライブラリィ?勘弁してください

2chスレ:tech
のリンク先のブログ主様が書いた簡潔なライブラリです

問題は、「なぜこれをやろうとしないのか?」という点です
もちろんライブラリの後方互換性は失われますが、
python2 から python3 で致命的な「後方互換性の断絶」を断行したのが
Python ですから、一貫性のあるAPIを提供するライブラリへの刷新もできたはず

さらに根本原因にさかのぼれば、「なぜ最初から一貫性のあるAPIを設計しなかったのか」
といふ疑念に突き当たります
だって、Python を除く今時のオブジェクト指向言語では設計できていますから

最後に背景原因を考察すると、Python 作者のGuido氏が:
  API の設計において一貫性などはクソ
と考えていたのか、それとも:
  オブジェクト指向が流行っていたから行き当たりばったりに設計した、
  今は後悔している
と考えているのか興味深い
571: デフォルトの名無しさん [sage] 2018/08/02(木) 03:23:08.65 ID:7JMdFE06(1) AAS
>>518
いつ誰が「メソッドチェーン vs 内包表記」なんて下らん比較したんだよ

内包表記は内包表記で便利だっつっただけで、
メソッドチェーンつーかポイントフリースタイルが内包表記があれば不要なんて言った記憶は少なくとも俺にはないな

つーか>>478下段、まさにPythonにはポイントフリースタイル実現する記法が足りねえっつってんのが読み取れねえのか?

今時エセ歴史的仮名遣いで書き込むクルクルパーは国語の勉強しなおした方がいいぞ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.043s