【发布时间】:2016-09-01 23:34:37
【问题描述】:
我是功能编程的新手,需要制作一个简单的纸牌游戏,但在录制功能方面遇到了麻烦。
假设我有一个包含 5 个玩家的列表。现在我用玩家当前的手牌为每一轮玩家打印一个菜单,然后玩家丢下一张牌并抽一张新牌。
我需要一直跑到牌堆用完为止。
这是我的代码:
let rec round deck players =
match deck with
| [] -> ()
| h::t -> (match players with
| x::xs -> print_mazo deck;
print_play x;
let i = read_int () in
let (newhand, carta) = drop x.mano i in
let (newdeck, newhand2) = draw deck newhand 1 in
print_ronda x carta;
round newdeck xs
| [] -> round newdeck players
)
我收到了这个错误:
Error: Unbound value newdeck
【问题讨论】:
-
看起来问题与
read_int一致:应该是read_int () -
(1) 最好有一个实际编译的最小化完整示例。 (2) 至少你应该标记出错误发生的那一行。
-
你不能一直改变你的问题。它使旧答案变得荒谬。
-
我同意@JeffreyScofield,直到我看了你编辑的内容,我才明白他的回答:-D
-
很抱歉第一次使用 Stakoverflow,现在我知道它是如何工作的了。感谢大家的帮助。
标签: recursion functional-programming ocaml