7
私は自分のPreludeモジュールを定義し、そのエクスポートを慎重に制御できることに気付きました。 これは悪い習慣と考えられますか?カスタムプレリュードモジュール - 悪い考えですか?
利点:
大規模なプロジェクトでは、 "一般的な" モジュールを繰り返しをインポートする必要はありません。
"Prelude hiding(catch)"を読み込む必要はありません。
私は自分のPreludeモジュールを定義し、そのエクスポートを慎重に制御できることに気付きました。 これは悪い習慣と考えられますか?カスタムプレリュードモジュール - 悪い考えですか?
利点:
大規模なプロジェクトでは、 "一般的な" モジュールを繰り返しをインポートする必要はありません。
"Prelude hiding(catch)"を読み込む必要はありません。
一般的に悪い考えです。自分の慣用句で書かれたコードで、他の人が管理しづらいものになります。
他人と通信するには、シンボルの共有言語が必要です。 Prelude
は私たちの中心的な言語ですので、再定義すると、混乱が予想されます。
このルールの例外は、埋め込みドメイン固有の言語を開発する場合です。そこでは、カスタムプレリュードを作ることはいいアイデアであり、実際にプレリュード(および組み込み構文)を最初に再定義することが可能です。
あなた自身の追加モジュールがありますが、プレリュードをオーバーライドしないでください。
明白な欠点の1つは、可読性です。人々は明示的に隠されていない限り、Prelude関数がPrelude関数であることを期待しています。 '非表示(マップ) 'がない場合、通常のマップではない'マップ'に遭遇するのは非常に不愉快です。 – gspr
私はいくつかのプロジェクトで 'basic-prelude'を使います。私はカスタムプロジェクトごとのプレリュードが遠すぎるかもしれないと思うが、もし何かが普及することができるなら、私はそれをサポートするだろう。 – singpolyma
@singpolyma 'basic-prelude'という概念をありがとう! –