在Haskell中,有没有一种方法可以初始化列表并同时声明该列表中的符号?
目前我这样做:
import Data.List
main = do
let lambda = "x03BB"
xi = "x926"
bol = "x1D539"
cohomology_algebra = [ lambda, bol, xi]
putStrLn $ xi
putStrLn $ show cohomology_algebra
然而,我有一长串符号,我担心我忘记把它们都放在列表中(已经发生了(
理想情况下,我会做一些类似的事情:
main = do
let cohomology_algebra = [ lambda = "x03BB", bol = "x1D539", xi= "x926"] -- does not compile
putStrLn $ show cohomology_algebra
有办法绕过这个吗?
不是一个完美的解决方案,但您可以使用
let cohomology_algebra@[lambda, bol, xi] = ["x03BB", "x926", "x1D539"]
如果上面两个列表的长度不同(在需要名称的地方(,这将触发运行时错误。
它不是最佳的,因为这个检查应该在编译时进行。此外,在这种代码样式中,我们不得不过多地将标识符与其值分开,从而可能会错误地交换一些定义。