我开始怀疑我的Haskell和函数编程的计划是否通过使用Haskell进行我的下一个算法课程是一个很好的计划.
为了得到一些Haskell线,我开始尝试实现一些简单的算法.第一:稳定婚姻问题的Gale-Shapley.尚未进入monad,所有可变状态看起来令人生畏,所以我使用稳定匹配的表征作为半匹配点阵上映射的固定点.它很有趣,但它不再是Gale-Shapley而且复杂性不是很好(晶格中的那些链条显然可以很长:)
接下来我有平面中最近点对的算法,但是我坚持得到通常的O(n*log n)复杂度,因为我无法弄清楚如何用O(1)获得类似于集合的数据结构)检查会员资格.
所以我的问题是:一般可以实现大多数算法,例如.Dijkstra,Ford-Fulkerson(Gale-Shapley!?)如果能更好地掌握Haskell和函数式编程,那么从程序实现中获得复杂性?
我试图通过打开一个包含test/和以文件名结尾的路径的新文件来触发自动cmd Test.java.读入:h autocmd-patterns我无法弄清楚是否只有有限的模式可以用作auto-cmd中的文件模式,或者我是否只是对我的模式做错了.以下工作用于匹配以.结尾的任何文件.java
autocmd! BufNewFile *.java
\ "command implemented !
Run Code Online (Sandbox Code Playgroud)
现在,我尝试将新文件与包含/test/和以文件名结尾的路径进行匹配,Test.java通过以下内容及其衍生物
autocmd! BufNewFile */test/*Test.java
\ "command implemented !
Run Code Online (Sandbox Code Playgroud)
如何在文件test/夹和文件名结尾的所有文件中触发autocmd Test.java.例如,它应该在执行时触发
$ vim code/algos/graphs/test/KruskalTest.java
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个自动命令,它将为新的Java源文件创建样板评论和代码.作为一个简单的开始,我在我的.vim/ftplugin/java.vim中添加了以下两行(仅在实际文件中的第一行之后的新行):
autocmd BufNewFile *.java
\ exe "normal O/*\r" . expand('%:t') . "\t" . strftime("%B %d %Y") .
"\r/\r\rpublic class " . expand('%:t:r') . " {\r\t\<Esc>i"
Run Code Online (Sandbox Code Playgroud)
对于最后一部分,\t\<Esc>i我试图插入一个选项卡并自动切换到插入模式.我不能让插入模式工作的开关,并尝试两种或两种以上的不同排列\<Esc>,\<Insert>,"insert",i和\t.我错过了什么?我在Linux上使用VIM 7.2.