要比较两个字符串并将字符串添加到列表中,如果它们相等,我使用内置的比较函数创建了这个函数:
fun compareString(string, list) =
if compare(string, "hello") = EQUAL then string::list;
但是,这会产生错误。我想我的语法一定是错的,我是否正确使用了比较功能?
根据文档,比较功能的工作原理如下:
compare(s,t)使用字符上的排序
Char.compare
对两个字符串进行字典比较。如果s小于,等于或大于t,则返回LESS
,EQUAL
或GREATER
。
答案 0 :(得分:5)
您忘记的是 if-then-else 的 else ... 部分。这部分是强制性的。
您可能希望专门使用函数 <html lang="en">
<head>
<title>Input Text Number Disable</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>
<input type="number" />
<script>
$('input').keypress(function(event){
event.preventDefault();
});
</script>
</body>
</html>
。
如果您只关心相同的情况,您可以简单地使用String.compare
运算符。
名称 compareString 是将字符串汇总到列表的函数的奇怪名称。
名称 string 和 list 也不是很好的变量名,因为它们没有描述变量的用途。如果函数是通用的,那么通用名称可能是合适的,你可以选择你喜欢的通用名称的任何方案。
包含谓词(字符串必须等于=
)似乎有点傻,因为你会确切地知道该列表的样子;它将与正整数同构。相反,如果将包含谓词作为参数,则该函数实际上可能有用。
例如:
"hello"
或者将其变为二元运算符并将其命名为fun consIf (p, x, xs) =
if p x
then x :: xs
else xs
fun is_greeting x = List.exists (fn y => x = y) ["hello", "hi", "good day"]
val ys = consIf (is_greeting, "hello", ["hi"])
,因为它类似::?
条件:
::