使用参数化定界符对字符串进行标记

时间:2018-11-04 07:17:53

标签: sml

我需要基于要作为功能参数传递的分隔符,将字符串标记化为Standard ML中的单词列表。这是我到目前为止的代码:

val splitter = String.token(fn (c:string,x:char) =>  c=x);

我尝试过,但是我知道它是错误的。请帮助我进行修改。

2 个答案:

答案 0 :(得分:1)

c的类型为字符串,而x的类型为char。它们不可比。您可以使用Char.toString将x转换为字符串。

splitter = String.token(fn (c:string,x:char) => c=Char.toString x);

答案 1 :(得分:0)

没有称为String.token的标准库函数,但也许您的意思是String.tokens

- String.tokens;
> val it = fn : (char -> bool) -> string -> string list

您并不是说分隔符是string还是char,而是假设它是char

fun splitter sep s = String.tokens (fn c => c = sep) s

您也可以这样定义

fun curry f a b = f (a, b)
val splitter = String.tokens o curry op=