获取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,尽管您应该小心,因为如果在空列表上使用它,它会

我正在尝试使用SML中的foldl检索列表的最后一个元素,但是从我已经做的事情中没有得到很多正确的答案,下面是我的一个错误尝试,请帮忙

            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实现这个函数