我正在通过"Scala编程"编写并编写了一个快速实现选择排序算法.但是,由于我在函数式编程方面仍然有点绿色,因此我无法转换为更多Scala-ish风格.对于那里的Scala程序员,我怎样才能使用Lists和vals而不是回到我的命令式方式呢?
具体来说,我希望我的"新"菜单项能够响应两者Cmd+N,Cmd+T因为它将在选项卡中打开一个新文档.*如何在Interface Builder中或以编程方式执行此操作?
*如果需要,我可以进一步解释推理,但我希望避免讨论优点,而是专注于如何做,而不是为什么要这样做.
我正在为Mac编写一个开源文本编辑器,并最终达到了我想要添加语法高亮的地步.过去几天我一直在寻找各种解决方案,最后我决定向更广泛的受众提出这个问题.
以下是我看到的选项:
使用正则表达式模式匹配似乎不太理想,因为它不能正式表示语言几乎和正式语法一样好; 然而,一些不太正式的语言将难以适应BNF(即Markdown - 尽管我知道有一个很好的PEG实现).
实时语法高亮显示的性能权衡是什么?多种语言的灵活性如何?
如果我走BNF路线,Todd Ditchendorf创建了令人敬畏的ParseKit框架,它可以很好地开箱即用.任何人都知道PEG的任何类似的东西?