Текущий рабочий каталог будет откуда вы начинаете свой SML-интерпретатор. Если у вас есть ярлык на рабочем столе, то я бы предположил, что вы можете установить CWD в свойствах ярлыка (я не пользователь Windows), я бы предположил, что это, по умолчанию, это каталог, где у вас есть SML / NJ установлен.
Если вы запускаете интерпретатор sml из командной строки, то CWD - это каталог, в котором вы находились, когда запускали интерпретатор.
Вы можете заставить интерпретатор вывести его CWD с помощью следующей команды
OS.FileSys.getDir()
И вы также можете изменить CWD на другой рабочий каталог с помощью OS.FileSys.chDir .
Однако проще просто использовать абсолютные пути при попытке "загрузить" файлы 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
В файловой системе Windows вам, очевидно, нужно выходить из-под контроля. Приведенный ниже код должен работать, но я не могу его протестировать, так как у меня нет окон.
OS.FileSys.chDir("C:\\Users\\username\\Desktop");
В комментарии, который вы написали, вы забыли покинуть два последних возврата.