Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SML/NJ Basis库在Windows 10中不工作_Sml_Smlnj - Fatal编程技术网

SML/NJ Basis库在Windows 10中不工作

SML/NJ Basis库在Windows 10中不工作,sml,smlnj,Sml,Smlnj,我正在Windows 10上使用最新版本的SMLNJ(110.79) 我似乎无法使用任何SML Basis库函数 下面是我用List.filter fun isOdd nmbr = (nmbr mod 2) = 1; List.filter isOdd [1,2,3,4,5]; 这会产生以下错误 SML/NJ:Io[Io:openIn在“C:\cygwin\home\larsberg\smlnj2\SML.boot.x86-win32\smlnj\basis.cm\x86-win32\basi

我正在Windows 10上使用最新版本的SMLNJ(110.79)

我似乎无法使用任何SML Basis库函数

下面是我用
List.filter

fun isOdd nmbr = (nmbr mod 2) = 1;
List.filter isOdd [1,2,3,4,5];
这会产生以下错误

SML/NJ:Io[Io:openIn在“C:\cygwin\home\larsberg\smlnj2\SML.boot.x86-win32\smlnj\basis.cm\x86-win32\basis.cm”上出现意外异常(错误?),win32 bin prim Io:checkHndl:openRd:failed] 提出时间:Basis/Implementation/IO/bin IO fn.sml:617.25-617.71 ../cm/util/safeio.sml:30.11 ../compiler/TopLevel/interact/evalloop.sml:44.55

Basis库中的其他函数也会产生相同的错误,例如
Real.fromInt

有关的评论指出了一个类似的问题,但我不确定如何继续

我错过了一些简单的东西吗?谢谢

编辑:

在卸载和重新安装几次后,它似乎可以正常工作。我暂时不回答这个问题,因为我真的不知道是什么让它真正起作用

List.filter给出了这个输出

[autoloading]
[library $SMLNJ-BASIS/basis.cm is stable]
[library $SMLNJ-BASIS/(basis.cm):basis-common.cm is stable]
[autoloading done]
val it = fn : ('a -> bool) -> 'a list -> 'a list

当移动已安装目录或未设置SMLNJ主环境时,会发生这种情况。基本上,sml无法找到basis.cm文件,该文件应存在于$SMLNJ_HOME子目录中。因此,通过在$SMLNJ_HOME中设置安装路径,我解决了这个问题

  $SMLNJ_HOME=~/ws/CSCI-5161/sml

我使用的是Windows7,但出现了相同的错误。windows安装程序将程序放入程序文件(x86)/SMLNJ中。我已将SMLNJ文件夹移动到Program Files/中,现在不再出现错误。

您的问题应该是SML/NJ在Windows上无法正常工作。正如你自己所说,这与List.filter没有什么特别的关系。你是对的,我重新编写了这个问题。也许你可以尝试直接使用Windows installer,而不是通过Cygwin(如果这不会给你的代码库带来太多困难的话)。这可能更多的是Cygwin与Windows 10之间的问题,而不是SML/NJ与Windows 10之间的问题。我很确定我就是这么做的。我刚刚从这里直接得到了
.msi
,我的评论是基于在您给出的错误消息中看到Cygwin。我在110.79上使用了windows安装程序(在windows 7上,而不是在10上),没有问题——但是Cygwin目录上没有安装任何东西(我的机器上甚至没有Cygwin)。我想知道如果安装程序检测到Cygwin,它是否会做一些不同的事情。如果您选择了该目录,可以卸载,然后使用安装程序建议的默认目录重新安装。如果情况更糟,您可以尝试按照以下说明从源代码进行编译: