相关疑难解决方法(0)

使用REPL中的#-signs截断输出

我编写了一个按预期工作的函数,但我不明白为什么输出就是这样.

功能:

datatype prop = Atom of string | Not of prop | And of prop*prop | Or of prop*prop;


(* XOR = (A And Not B) OR (Not A Or B) *)

local

fun do_xor (alpha,beta) = Or( And( alpha, Not(beta) ), Or(Not(alpha), beta))

in
fun xor (alpha,beta) = do_xor(alpha,beta);
end;
Run Code Online (Sandbox Code Playgroud)

测试:

val result = xor(Atom "a",Atom "b");
Run Code Online (Sandbox Code Playgroud)

输出:

val result = Or (And (Atom #,Not #),Or (Not #,Atom #)) : prop
Run Code Online (Sandbox Code Playgroud)

sml smlnj

8
推荐指数
1
解决办法
1183
查看次数

为什么我在此代码的输出中有意外的'#'?

我正在尝试创建一个派生函数来区分使用数据类型,如下所示:

datatype Symex = RCOEFF of real
               | COEFF  of string
               | VAR    of string
               | POWER  of Symex * int
               | NEG    of Symex
               | PLUS   of Symex * Symex
               | MINUS  of Symex * Symex
               | MULT   of Symex * Symex
               | DIVIDE of Symex * Symex
Run Code Online (Sandbox Code Playgroud)

这是*x ^ 3 + 4.0*x ^ 2 + b*x + c的示例

PLUS (MULT (COEFF ("a"),
            POWER (VAR ("x"), 3)),
      PLUS (MULT (RCOEFF (4.0),
                  POWER (VAR ("x"), 2)),
            PLUS (MULT (COEFF ("b"), …
Run Code Online (Sandbox Code Playgroud)

sml smlnj

3
推荐指数
1
解决办法
89
查看次数

标签 统计

sml ×2

smlnj ×2