gpt4 book ai didi

list - 记录列表上的 SML 功能

转载 作者:行者123 更新时间:2023-12-05 00:36:00 25 4
gpt4 key购买 nike

我正在尝试声明一个函数,该函数将元组内的记录列表作为参数,但语法并不像我希望的那样直观。

这是我正在尝试做的事情:

type Player = {id:int, privateStack:int list};
fun foo(({id, x::xs}:Player)::players, ...) = (* wrong syntax *)
(* do something *)

最佳答案

模式匹配需要将记录字段绑定(bind)到某些值,因此您必须使用显式记录语法。所以,

fun foo(({id = id, privateStack = x::xs})::players, ...) =
(* do something *)

会工作。

请注意,上述模式匹配并不详尽,请注意 players 的空列表和 privateStack 的空列表:
fun foo([], ...) = (* do something *)
| foo({id = id, privateStack = []}::players, ...) = (* do something else *)
| foo({id = id, privateStack = x::xs}::players, ...) = (* do something else *)

关于list - 记录列表上的 SML 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8711264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com