educoder SML程序设计题线下编译环境搭建

背景

最近《串并行数据结构与算法设计》的老师在educoder上布置了一些SML程序设计题,虽然网站上有在线编译功能,但还是在线下编译调试方便,特记录编译环境过程如下(我用的GVIM,但Notepad++、Visual Studio Code等编辑器可以类推)

第一步:安装编译器

下载Standard ML of New Jersey(https://www.smlnj.org/),下载完直接一路安装就行,环境变量已经自动配好了。

第二步:配置GVIM

打开GVIM目录下的配置文件_vimrc,加入

func Run()
    exec 'w'
    if &filetype == 'sml'
        exec '!sml < %'
    endif
endfunc
map <C-F5> :call Run() <CR>

这段话的意思是按下Ctrl + F5之后GVIM保存当前文件,之后如果当前文件类型是SML则执行命令“sml < 当前sml文件”,把当前sml文件的内容重定向到sml交互命令行程序中执行。

第三步:写程序前的操作

首先复制网站题目编辑器给的输入输出模板到GVIM中,因为sml交互命令行程序的标准输入已经被我们的sml文件占了,所以标准读入函数不能用,所以我们需要在程序的首行添加

val input = TextIO.openIn("input.txt");

接着把程序中所有的TextIO.stdIn替换成input,之后在程序的相同目录建立一个input.txt存储样例输入,然后就可以在模板里的begin和end里面写你自己的内容了。交代码时只要把程序里begin和end里面你写的内容贴到网站题目编辑器里面的begin和end之间就行了。

试一下CSDN多久会复制我这篇文章。

posted @ 2019-09-22 20:20  YuanZiming  阅读(845)  评论(0编辑  收藏  举报