Haskell 如何正确缩进OSC配置
我试图在haskell文件中找到OSC配置的正确缩进。当我用两行写出下面的内容时Haskell 如何正确缩进OSC配置,haskell,indentation,Haskell,Indentation,我试图在haskell文件中找到OSC配置的正确缩进。当我用两行写出下面的内容时 unityTarget :: OSCTarget unityTarget = OSCTarget {oName = "unityTarget", oAddress = "10.0.0.3", oPort = 7000, oPath = "/tidal", oShape = Nothing, oLatency = 0.02, oPreamble = [], oTimestamp = MessageStamp } 但
unityTarget :: OSCTarget
unityTarget = OSCTarget {oName = "unityTarget", oAddress = "10.0.0.3", oPort = 7000, oPath = "/tidal", oShape = Nothing, oLatency = 0.02, oPreamble = [], oTimestamp = MessageStamp }
但是如果我使用下面的缩进,它就不起作用了,并且给了我一个解析错误:可能是错误的缩进或者不匹配的括号。我试过各种变化,但没有一种有效。谢谢你的帮助
unityTarget :: OSCTarget
unityTarget = OSCTarget {oName = "unityTarget",
oAddress = "10.0.0.3",
oPort = 7000,
oPath = "/tidal",
oShape = Nothing,
oLatency = 0.02,
oPreamble = [],
oTimestamp = MessageStamp
}
我怀疑您使用的任何工具都是将其输出发送到ghci,而不是出于某种原因直接使用ghc。ghci的设计是交互式的,因此默认情况下,它一次接受一行并立即处理它。这会导致两个问题:您的类型签名将自行处理,而ghci将抱怨没有附带的绑定;而
unityTarget=OSCTarget{oName=“unityTarget”,
行将自行处理,ghci将抱怨{
未关闭(但您可能看到的“parse error”消息没有帮助)
最简单的修复方法是用:{
和:}
括起任何多行内容,这是ghci用于开始和结束多行命令的标记,如您发布的示例文件中的其他地方所示,因此:
:{
unityTarget :: OSCTarget
unityTarget = OSCTarget {oName = "unityTarget",
oAddress = "10.0.0.3",
oPort = 7000,
oPath = "/tidal",
oShape = Nothing,
oLatency = 0.02,
oPreamble = [],
oTimestamp = MessageStamp
}
:}
我无法重现错误,你在哪里运行代码?请检查这里@DamiánRafaelattenero非常感谢,它实际上是TidalCycles的引导文件,不知道如何创建运行示例。它在TidalCycles Atom插件启动后立即执行: