2012-11-30 23 views
7

私は自分のPreludeモジュールを定義し、そのエクスポートを慎重に制御できることに気付きました。 これは悪い習慣と考えられますか?カスタムプレリュードモジュール - 悪い考えですか?

利点:

  • 大規模なプロジェクトでは、 "一般的な" モジュールを繰り返しをインポートする必要はありません。

  • "Prelude hiding(catch)"を読み込む必要はありません。

+3

明白な欠点の1つは、可読性です。人々は明示的に隠されていない限り、Prelude関数がPrelude関数であることを期待しています。 '非表示(マップ) 'がない場合、通常のマップではない'マップ'に遭遇するのは非常に不愉快です。 – gspr

+2

私はいくつかのプロジェクトで 'basic-prelude'を使います。私はカスタムプロジェクトごとのプレリュードが遠すぎるかもしれないと思うが、もし何かが普及することができるなら、私はそれをサポートするだろう。 – singpolyma

+0

@singpolyma 'basic-prelude'という概念をありがとう! –

答えて

9

一般的に悪い考えです。自分の慣用句で書かれたコードで、他の人が管理しづらいものになります。

他人と通信するには、シンボルの共有言語が必要です。 Preludeは私たちの中心的な言語ですので、再定義すると、混乱が予想されます。

このルールの例外は、埋め込みドメイン固有の言語を開発する場合です。そこでは、カスタムプレリュードを作ることはいいアイデアであり、実際にプレリュード(および組み込み構文)を最初に再定義することが可能です。

あなた自身の追加モジュールがありますが、プレリュードをオーバーライドしないでください。

関連する問題