获取sml foldl中列表中的最后一个元素
我正在尝试使用SML中的foldl检索列表的最后一个元素,但是从我已经做的事情中没有得到很多正确的答案,下面是我的一个错误尝试,请帮忙获取sml foldl中列表中的最后一个元素,sml,Sml,我正在尝试使用SML中的foldl检索列表的最后一个元素,但是从我已经做的事情中没有得到很多正确的答案,下面是我的一个错误尝试,请帮忙 fun last p = foldr ( fn (x, y) => if ( p y ) then x else y ) []; 您可以使用List.last,尽管您应该小心,因为如果您在空列表上使用它,它将引发异常 对于MosML实现,您可以在找到文档,您可以使用List.last,尽管您应该小心,因为如果在空列表上使用它,它会
fun last p = foldr ( fn (x, y) => if ( p y ) then x else y ) [];
您可以使用
List.last
,尽管您应该小心,因为如果您在空列表上使用它,它将引发异常
对于MosML实现,您可以在找到文档,您可以使用
List.last
,尽管您应该小心,因为如果在空列表上使用它,它会引发异常
对于MosML实现,您可以在找到文档,您可以使用
List.last
,尽管您应该小心,因为如果在空列表上使用它,它会引发异常
对于MosML实现,您可以在找到文档,您可以使用
List.last
,尽管您应该小心,因为如果在空列表上使用它,它会引发异常
对于MosML实现,您可以在中找到文档,正如RasmusWL提到的,
列表。最后一个
是适合一般使用的工具
可以使用foldl
重新创建它:
fun last(alist,init)=List.foldl(fn(x,y)=>x)init-alist
这将生成一个签名:fn:'a list*'a->'a
要使用foldr
编写,请使用:
fun last(alist,init)=List.foldr(fn(x,y)=>x)init(List.rev-alist)
使用foldl
的优点是不需要检查空列表:
List.foldl (fn(x,y) => x) 0 [];
(* val it = 0 : int *)
正如RasmusWL所提到的,
List.last
是通用的合适工具
可以使用foldl
重新创建它:
fun last(alist,init)=List.foldl(fn(x,y)=>x)init-alist
这将生成一个签名:fn:'a list*'a->'a
要使用foldr
编写,请使用:
fun last(alist,init)=List.foldr(fn(x,y)=>x)init(List.rev-alist)
使用foldl
的优点是不需要检查空列表:
List.foldl (fn(x,y) => x) 0 [];
(* val it = 0 : int *)
正如RasmusWL所提到的,
List.last
是通用的合适工具
可以使用foldl
重新创建它:
fun last(alist,init)=List.foldl(fn(x,y)=>x)init-alist
这将生成一个签名:fn:'a list*'a->'a
要使用foldr
编写,请使用:
fun last(alist,init)=List.foldr(fn(x,y)=>x)init(List.rev-alist)
使用foldl
的优点是不需要检查空列表:
List.foldl (fn(x,y) => x) 0 [];
(* val it = 0 : int *)
正如RasmusWL所提到的,
List.last
是通用的合适工具
可以使用foldl
重新创建它:
fun last(alist,init)=List.foldl(fn(x,y)=>x)init-alist
这将生成一个签名:fn:'a list*'a->'a
要使用foldr
编写,请使用:
fun last(alist,init)=List.foldr(fn(x,y)=>x)init(List.rev-alist)
使用foldl
的优点是不需要检查空列表:
List.foldl (fn(x,y) => x) 0 [];
(* val it = 0 : int *)
我知道它存在于标准库中,但我想用foldl或foldrI实现该函数我知道它存在于标准库中,但我想用foldl或foldrI实现该函数我知道它存在于标准库中,但是我想用foldl或foldr实现这个函数我知道它存在于标准库中,但是我想用foldl或foldr实现这个函数