15.7 第十五章小结
本章开始,我们讨论了面向语言(language-oriented)的编程风格,特别是关于创建内部 DSLs 技术。我们简要提及抽象值表示技术,在这种技术下,通常设计一种数据类型(特别是差别联合)来表示连接符。接下来,我们讨论了流畅的接口(fluent interfaces),它在 C# 中尤其有用,和组合库,在函数式编程语言中使用。
我们在这一章用了大量的篇幅,讨论了创新描述动画的语言。大部分工作花在开发独立的行为和绘图的概念上。在每个区域中,我们创建的基元 (例如,wiggle、time 和 circle),以及用于组合和转换的操作。令人惊讶的是它的灵活性,如果选择得当,可以相对较少基元完成任务。
组合的下一个级别是库,正如我们可以组合两个基元,创建更复杂的基元一样,可以组合两个精心设计,但不相关的库来创建丰富的结果,在我们的例子,动画。这一章的最后,快速浏览了不同的问题域,表示股票交易。用于的行为和绘图的技术,同样适用于这个域和其他域。
在下一章中,我们就会把注意力放回到异步工作流,在第 13 章中讨论过,但现在要以不同的方式使用它们。我们将讨论开发响应外部事件的应用程序,包括来自用户界面的事件。通常,我们将讨论有关在 F# 写有响应的应用程序(reactive applications),经及相关的技术。