C # Динамический цикл for

Совпадение шаблонов - одна из тех болезненных операций, которые трудно обойти, если вы исходите из процедурного программирования. Мне трудно попасть, потому что для сопоставления может использоваться тот же синтаксис, который используется для создания структуры данных.

В F # вы можете использовать оператор cons ::, чтобы добавить элемент в начало list like so:

let a = 1 :: [2;3]
//val a : int list = [1; 2; 3]

Аналогичным образом вы можете использовать один и тот же оператор, чтобы разбить список так:

let a = [1;2;3];;
match a with
    | [a;b] -> printfn "List contains 2 elements" //will match a list with 2 elements
    | a::tail -> printfn "Head is %d" a //will match a list with 2 or more elements
    | [] -> printfn "List is empty" //will match an empty list
-11
задан Liren Yeo 27 September 2017 в 06:37
поделиться