Haskell 如果包存在,可以选择运行代码
在Python中,如果给定的包是这样存在的,我可以选择运行一些代码:Haskell 如果包存在,可以选择运行代码,haskell,Haskell,在Python中,如果给定的包是这样存在的,我可以选择运行一些代码: try: import asd # do something with asd except ImportError: print "no module asd" 是否存在Haskell等价物?否。Haskell编译器将拒绝任何导入找不到的模块的程序,就像拒绝使用未定义的函数一样。否。Haskell编译器将拒绝任何导入找不到的模块的程序,就像拒绝使用未定义的函数一样。不是直接,因为模块导入是在编译时用GHC解析的
try:
import asd
# do something with asd
except ImportError:
print "no module asd"
是否存在Haskell等价物?否。Haskell编译器将拒绝任何导入找不到的模块的程序,就像拒绝使用未定义的函数一样。否。Haskell编译器将拒绝任何导入找不到的模块的程序,就像拒绝使用未定义的函数一样。不是直接,因为模块导入是在编译时用GHC解析的。但是如果您正在使用(而且您应该是!),您可以根据a有条件地依赖一个包,然后根据依赖关系是否存在,使用
CPP
扩展来编译代码:
#if MIN_VERSION_somepackage(0,0,0)
...code using somepackage...
#else
...code not using somepackage...
#endif
不过这有点尴尬,所以我不建议使用它,除非您真的需要它…不是直接使用,因为模块导入是在编译时用GHC解决的。但是如果您正在使用(而且您应该是!),您可以根据a有条件地依赖一个包,然后根据依赖关系是否存在,使用
CPP
扩展来编译代码:
#if MIN_VERSION_somepackage(0,0,0)
...code using somepackage...
#else
...code not using somepackage...
#endif
不过,这有点尴尬,所以我不建议您使用它,除非您确实需要它。此外,如果您使用,您可能可以在运行时使用新的库。此外,如果使用,您可能可以在运行时使用新库。您可以使用while语句在您有程序包时运行程序,否则程序包将不运行。您可以使用while语句在您有程序包时运行程序,否则程序包将不运行。