【发布时间】:2021-03-30 14:19:50
【问题描述】:
我是 F# 初学者,目前在 BlackJack F# 实现中尝试一些 Lists 操作。
我正在尝试总结我创建的列表的元素,如下所示:
let cardsvalue (k: Cards): List<int> =
match k with
|Ace -> [1;11]
|Two -> [2]
|Three -> [3]
|Four -> [4]
|Five -> [5]
|Six -> [6]
|Seven -> [7]
|Eight -> [8]
|Nine -> [9]
|Ten | Jack | Queen | King -> [10]
type Cards 只是二到九、十到国王和王牌的组合。
所以我需要某种递归函数 CardPoints,它只是添加来自 cardsvalue 的项目,例如 [Two; Three] = [5] 或 [Ace; Ace; Ace] = [3; 13; 23; 33] 表示 Ace 的所有可能值。我尝试了几种常见的求和方法,但我总是以类型不匹配或不支持运算符错误而告终。例如
let rec CardPoints (cp: List<Cards>): List<int> =
match cp with
| head :: tail -> head + CardPoints tail
| [] -> 0
不接受 + 运算符。
我很想看到这个问题的可能实现。感谢您的宝贵时间!
【问题讨论】:
-
您正在尝试将数字添加到数字列表中
-
你很亲密,所以告诉你会破坏它。
-
你介意分享一下吗?它会是什么样子
-
这里的问题是,这个小组会收到希望你做功课的人的帖子......所以人们对于明确地给你完整的答案非常紧张。
-
是的,我可以看到。我想人们更乐意留下未回答的问题
标签: list recursion f# sum blackjack