2017-11-26 9 views
2

以下は私のコードの一部です。私はr#と呼ばれ​​る部屋がたくさんあり、それぞれの行のリストに入れましたが、最後にこれらのリストをまとめて全室を含む大きなリスト。 私は別々のリストのリストを作るのではなく、すべての部屋のリストを作成しようとしています! 9行目は、私は、List.concat使用リストをまとめて追加する方法F#

let r58 = {id=58;item=pot2;n=0;e=0;s=51;w=0;complete=false} 
let r59 = {id=59;item=m13;n=60;e=0;s=55;w=0;complete=false} 
let row11 = [r58;r59] 

let r60 = {id=60;item=m8;n=61;e=0;s=59;w=0;complete=false} 
let r61 = {id=61;item=m9;n=0;e=0;s=60;w=0;complete=false} 
let row12 = [r60;r61] 

let roomlist = row1::row2::row3::row4::row5::row6::row7::row8::row9::row10::row11::row12 

roomlist 
+0

あなたは '使用してリストを追加することができます@': 'row11 @ row12 @ ... '。 – Lee

+1

複数のリストがある場合、 'List.concat'は' @ 'を使うよりも優れています。 '@ '演算子は一度に2つのリストに作用するので、最初のリストを何回も通過します。 'a @ b @ c @ d'は最初に' a'と 'b'を加算した後、' ab'リストを取り出して 'c'を追加し、' abc'リストをとり、 'd'をそれ。 F#リストは連結リスト構造であり、頭から尾に到達するために反復されなければならないので、 'a'は4回反復されることを意味します。一方、 'List.concat'では、' a'は一度しか反復されません。だから、 'List.concat'は複数のリストの方が効率的です。 – rmunn

答えて

3

複数のリストを連結するには、間違った短所演算子を使用していそうです、問題のようです:

List.concat [row1; row2; row3; ... row12] 
+0

それは完璧に働いてくれてありがとう! –

+0

私の答えがあなたを助けたら、それを受け入れるのですか?質問の左側にある灰色のチェックマークイメージをクリックすると、これを行うことができます。 –

関連する問題