Sml 如何分别比较标准ML中两个字符列表的每个元素

Sml 如何分别比较标准ML中两个字符列表的每个元素,sml,Sml,我对SML非常陌生,我正在尝试编写一个函数,其中比较两个字符列表,例如,它从列表1中提取一个字符,并将其与列表2中的所有字符进行比较 val list1 = explode("abcdefghijklmnopqrstuvwxyz") val list2 = explode("bcdaghklfeijonmtrqpsvuwyzx!-232=,./;'[]{}:?<") val list1=explode(“abcdefghijklmnopqrstuvxyz”) val list2=expl

我对SML非常陌生,我正在尝试编写一个函数,其中比较两个字符列表,例如,它从列表1中提取一个字符,并将其与列表2中的所有字符进行比较

val list1 = explode("abcdefghijklmnopqrstuvwxyz")
val list2 = explode("bcdaghklfeijonmtrqpsvuwyzx!-232=,./;'[]{}:?<")
val list1=explode(“abcdefghijklmnopqrstuvxyz”)
val list2=explode(“bcdaghklfeijonmtrqpsvwyzx!-232=,./;”[{}:?这听起来像

XY问题是询问你试图解决的问题,而不是你的实际问题。这会导致大量的时间和精力浪费,无论是请求帮助的人还是提供帮助的人

您是否正在测试
list1
是否是
list2
的子集、子多集、子字符串、子序列或排列?或者它们是否设置为等效?尝试表达您的实际问题,然后描述您尝试的解决方案。:-)

您可能希望结合使用
List.exists
List.all

例如,如果要测试
list1
是否是
list2
的子集:

fun contains (ys, x) = List.exists (fn y => x = y) ys
fun isSubsetOf (xs, ys) = List.all (fn x => contains (ys, x)) xs
上面写着:对于所有
x
xs
,必须存在一个
y
ys
这样
x
=
y

这听起来像一个

XY问题是询问你试图解决的问题,而不是你的实际问题。这会导致大量的时间和精力浪费,无论是请求帮助的人还是提供帮助的人

您是否正在测试
list1
是否是
list2
的子集、子多集、子字符串、子序列或排列?或者它们是否设置为等效?尝试表达您的实际问题,然后描述您尝试的解决方案。:-)

您可能希望结合使用
List.exists
List.all

例如,如果要测试
list1
是否是
list2
的子集:

fun contains (ys, x) = List.exists (fn y => x = y) ys
fun isSubsetOf (xs, ys) = List.all (fn x => contains (ys, x)) xs

上面写着:对于所有
x
xs
,必须存在一个
y
ys
这样的解释很好,虽然我怀疑这是一个家庭作业,OP的指导老师希望得到一个不使用标准库高阶函数的天真解决方案。在它们澄清一点之前,很难确定。不管我们如何完成它,应该是这样的我用两种不同的编程语言编写,在其他语言中我没花多长时间就完成了,但标准ml对我来说是全新的,不管怎样,问题是我们应该检测一个pangram语句,因此列表1将包含该语句,列表2将包含从a到z的字母,如果所有字母都在列表中的句子中1然后这是一个pangram else不好的解释,尽管我怀疑这是一个家庭作业,OP的指导老师希望得到一个不使用标准库高阶函数的天真解决方案。在他们进一步澄清之前,很难确定。不管我们如何完成它,它应该在两个不同的程序中编写ming languages我没花多长时间就在其他语言中实现了这一点,但标准ml对我来说是全新的,不管怎样,问题是我们应该检测一个pangram句子,因此列表1将包含该句子,列表2将包含从a到z的字母表,如果所有字母表都在列表1中的句子中,那么它就是pangram,否则不是