我从未在Windows机器上使用过SML(之前在unix机器上使用过emacs).
对于我的生活,我在sml环境中找不到当前目录.如果我尝试:使用"filename.sml"它引发异常..我找不到放置文件的位置..
btw文件是用notepad ++编写的,只是用.sml扩展名命名.
Jes*_*erg 11
当前工作目录将从您启动SML解释器的位置开始.如果您的桌面上有快捷方式,那么我猜你可以在快捷方式的属性中设置CWD(我不是Windows用户),我想它默认情况下是你有SML的目录/ NJ已安装.
如果从命令行启动sml解释器,则CWD是您启动解释器时所在的目录.
您可以使用以下命令让解释器输出其CWD
OS.FileSys.getDir()
Run Code Online (Sandbox Code Playgroud)
您还可以使用OS.FileSys.chDir将CWD更改为另一个工作目录.
然而,当尝试"加载"sml文件时,使用绝对路径更容易 use
更新.
非常简单:您可以执行以下操作
- OS.FileSys.chDir("/tmp"); (* Go to the tmp directory *)
val it = () : unit
- OS.FileSys.getDir(); (* Verify that we did go to the tmp directory *)
val it = "/tmp" : string
- OS.FileSys.chDir("/home/jesper"); (* Go to my home directory *)
val it = () : unit
- OS.FileSys.getDir(); (* Verify where we did go. *)
val it = "/home/jesper" : string
Run Code Online (Sandbox Code Playgroud)
在Windows文件系统上,你显然必须逃避退格.下面的代码应该可以工作,但我无法测试它,因为我没有窗口.
OS.FileSys.chDir("C:\\Users\\username\\Desktop");
Run Code Online (Sandbox Code Playgroud)
在你写的评论中,你忘了逃避最后两个退格.