答案 0 :(得分:1)
我认为F#非常适合通过歧视的联盟来表示此域中的消息;我想象的是。
type Message =
| Message1 of string * DateTime * int * byte //name,timestamp,size,options
| Message2 of bool * short * short * byte[] //last,blocknum,blocksize,data
...
以及从/向字节数组解析/解析消息的方法。正如你所说,这项工作很简单,只是单调乏味。
我对消息的处理不太清楚,但总的来说,根据你的描述,听起来你已经掌握了它。
我有点担心你的'工具灵活性' - 你的约束是什么? (例如.Net,必须由熟悉X,Y,Z技术的程序员维护,必须满足某些性能标准,......)
答案 1 :(得分:1)
这是我的2美分(警告:我不知道F#):你有一个精确指定的输入文件, 即使有完整的语法。您希望将文件的内容映射到操作。因此,我建议你解析文件。 F#是一种函数式语言,它可能适合称为Recursive Descent Parsing的解析技术。 The book "Expert F#"包含对递归下降解析的讨论。