1

Python では、特定のパッケージが次のように存在する場合、必要に応じて少しのコードを実行できます。

try:
  import asd
  # do something with asd
except ImportError:
  print "no module asd"

Haskellに相当するものはありますか?

4

3 に答える 3

5

モジュールのインポートはコンパイル時にGHCで解決されるため、直接ではありません。ただし、Cabalを使用している場合(そしてそうする必要があります!)、構成フラグに従ってパッケージに条件付きで依存し、CPPその依存関係が存在するかどうかに応じて拡張機能を使用してコードをコンパイルできます。

#if MIN_VERSION_somepackage(0,0,0)
...code using somepackage...
#else
...code not using somepackage...
#endif

ただし、これは少し厄介なので、本当に必要な場合を除いて、使用することはお勧めしません...

于 2012-04-04T01:30:40.840 に答える
1

また、プラグインを使用すると、実行時に新しいライブラリを使用できる場合があります。

于 2012-04-04T12:16:27.013 に答える
1

いいえ。Haskell コンパイラは、未定義の関数の使用を拒否するのと同様に、見つからないモジュールをインポートするプログラムを拒否します。

于 2012-04-04T01:21:11.133 に答える