Просто сломайте его.
let step1 = [ for i in 1..4 -> i, true ]
let step2 = step1 |> Map.ofSeq
Тогда вы можете быть в состоянии прочитать «подпись» каждый шаг:
val step1 : (int * bool) list = [(1, true); (2, true); (3, true); (4, true)]
val step2 : Map<int,bool> = map [(1, true); (2, true); (3, true); (4, true)]
step1 затем список поэтому скобки для списка (выражение списка). Внутри списка есть кортеж (тип алгебраических данных, тип продукта) int и bool (int * bool) (обратите внимание на * для 'продукта').
Этап 2 представляет собой карту, созданную из последовательности, а список также представляет собой последовательность, поэтому это причина, по которой это работает (или списки поддерживают интерфейс последовательности). ofSeq
Должна быть полная распродажа, я бы предположил.
Map.ofList
Использования, возможно, сделаю его менее запутанным, но его эквивалент
let step1 = [ for i in 1..4 -> i, true ]
let step2 = step1 |> Map.ofList
val step1 : (int * bool) list = [(1, true); (2, true); (3, true); (4, true)]
val step2 : Map<int,bool> = map [(1, true); (2, true); (3, true); (4, true)]
Вы можете извлечь пользу из чтения некоторых документов, как: https://msdn.microsoft.com/en-us/library/dd233230.aspx
Теперь пришлите мне мой сертификат от этого курса вашего .. ,;-)
Кронштейны нотация для инициализации списка. См. Https://msdn.microsoft.com/en-us/library/dd233224.aspx Также для последовательностей вы можете использовать '{}': https://msdn.microsoft.com/en-us/library/dd233209.aspx Хорошее введение в выражения F # находится здесь: http://fsharpforfunandprofit.com/series/expressions-and-syntax.html – Petr
Небольшое предупреждение, однако, не ошибайтесь, используя скобки в коде (обозначая, что вы используете список) и скобку в типе (как показано в интерактивных или парящих вещах в визуальной студии); в этом случае они стоят за массив. Пример: 'let arr = [| 42 |] // val arr: int [] = [| 42 |] ' – Sehnsucht