Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何将数组中的项相乘,例如F中的4批[1..10]_Arrays_List_F# - Fatal编程技术网

Arrays 如何将数组中的项相乘,例如F中的4批[1..10]

Arrays 如何将数组中的项相乘,例如F中的4批[1..10],arrays,list,f#,Arrays,List,F#,我试图把一副纸牌21点放到一个数组或列表中。我以前见过这样做,但不记得语法,也找不到它 我需要这样的东西,让list=[1..10;10;10]*4,但这当然不行。如果有人能帮上忙,我将不胜感激。如果你能说出你使用的语言,那就太好了,因为答案 可能不同。我想你正在寻找一个数组。你需要一堆数组 记录牌的等级、花色、等级值,以及是否已经玩过、没有玩过,或者你想要的任何东西。所以你需要一些类似的东西: ranks = ['A', 2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q'

我试图把一副纸牌21点放到一个数组或列表中。我以前见过这样做,但不记得语法,也找不到它


我需要这样的东西,让list=[1..10;10;10]*4,但这当然不行。如果有人能帮上忙,我将不胜感激。

如果你能说出你使用的语言,那就太好了,因为答案 可能不同。我想你正在寻找一个数组。你需要一堆数组 记录牌的等级、花色、等级值,以及是否已经玩过、没有玩过,或者你想要的任何东西。所以你需要一些类似的东西:

ranks = ['A', 2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K']
rankValues = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10]
suits = [ 'spades', 'hearts', 'clubs', 'diamonds' ]

deck = [[ 0,0,0,0,0,0,0,0,0,0,0,0,0],
        [ 0,0,0,0,0,0,0,0,0,0,0,0,0],
        [ 0,0,0,0,0,0,0,0,0,0,0,0,0],
        [ 0,0,0,0,0,0,0,0,0,0,0,0,0]]
card = [suit, rank]

deck [suit][rank] = true
deck [suit][rank] = false

我不确定你想要的确切语法

理想情况下,您需要一个西服列表和一个牌列表,然后创建一个,并且可能最容易将牌组中的每张牌存储在一个数字tuple中,suit

通常情况下,诉讼是一个受歧视的联盟,你可以绘制数字:

类型套装= |心 |黑桃 |钻石 |俱乐部 穿西装= 相配 |1->红心 |2->黑桃 |3->钻石 |4->俱乐部 并将收益卡,suit}换成收益卡,toSuit}

你也可以通过使用Ace->King中的DU来处理卡片。我把它留给你作为练习

最后,如果你想要一个通用函数,你可以写这样的东西-我不记得这是在FSharp.Core中,但我可能错了

设multiplyList xs by=seq{ 对于x-in-xs-do 对于[1..by]do中的y 产率x,y} let deck=多列表卡4 |>序号toList
您可以使用Seq.allPairs,看看。您的代码行有两个问题。1.[1..10;10;10;10]未定义。2.列表不能与整数相乘。您可以使用[1..10]@[1..10]@[1..10]@[1::10]或[i=1到4的do yield![1..10]]。然而,我相信一个更好的答案是,对于绝对的初学者来说,最好从书本中学习,而且你还没有达到可以从StackOverflow问题中获益的程度。在Stack Overflow上,问题的标签通常用于指定OP使用的语言。这个问题被标记为f,因此OP正在寻找f语言的答案。您的答案看起来像是在使用Python,因此它不是这个问题的正确答案。
let cards = [1..10]
let suits = [1..4]

let deck = seq { 
    for card in cards do //cards could just be [1..10]
        for suit in suits do //suits could be too
            yield card, suit }

//Show the answer
printfn "%A" (deck |> Seq.toList)