Zum Hauptinhalt springen
Echtzeit-Radar & Feeds
Alle RSS Feeds ➔
👥 Community & Social
••
IT Security VideoPC Security Channel: FBI vs Shiny Hunters: Hacker Group Saga(01.10.2026 um 20:30 Uhr)
•
Sichere ProgrammierungArti 2.7.0 released(01.10.2026 um 02:00 Uhr)
•
AI & KI Nachrichtenprompt_injection(01.10.2026 um 16:46 Uhr)
•
AI & KI NachrichtenSEW(01.10.2026 um 17:46 Uhr)
•
IT Security ToolsHARDE(01.10.2026 um 18:46 Uhr)
•
Sichere Programmierungtrivy v0.75.0(01.10.2026 um 19:47 Uhr)
•
IT Security Toolsblinder(01.10.2026 um 20:47 Uhr)
•
Sicherheitslücken (CVE)gvcidrv64(01.10.2026 um 21:48 Uhr)
•••
IT Security VideoPC Security Channel: FBI vs Shiny Hunters: Hacker Group Saga(01.10.2026 um 20:30 Uhr)
•
Sichere ProgrammierungArti 2.7.0 released(01.10.2026 um 02:00 Uhr)
•
AI & KI Nachrichtenprompt_injection(01.10.2026 um 16:46 Uhr)
•
AI & KI NachrichtenSEW(01.10.2026 um 17:46 Uhr)
•
IT Security ToolsHARDE(01.10.2026 um 18:46 Uhr)
•
Sichere Programmierungtrivy v0.75.0(01.10.2026 um 19:47 Uhr)
•
IT Security Toolsblinder(01.10.2026 um 20:47 Uhr)
•
Sicherheitslücken (CVE)gvcidrv64(01.10.2026 um 21:48 Uhr)
•
Intelligence View
⚡ tsecurity.de Intelligence

F# For Dummys - Day 12 Collections List

Today we learn List, an immutable, ordered collection of elements of the same type The term "ordered" here means that the list maintains the sequence in which…

Beitrag
0
Seite
0
↗ Quelle (dev.to)
Social ReaktionenReagiere als Erste:r — dein Feedback zählt!

Today we learn List, an immutable, ordered collection of elements of the same type

The term "ordered" here means that the list maintains the sequence in which elements were added, doesn't mean List is sorted





Create List




  • Explicitly specifying elements



let numbers = [1; 2; 3; 4; 5]
let names = ["Alice"; "Bob"; "Charlie"]





the ; could be omit between elements if you write them in seperated lines




let list123 = [ 1 // first comment
2 // second comment
3 // third comment
]






all elements should be the same type




let list123 = ["1"; 2; 3]






the first elements is string, the rest is int, will get compile error:

All elements of a list must be implicitly convertible to the type of the first element, which here is 'string'. This element has type 'int'.(1,21)




  • Using a range



let numbers = [1..5] // Equivalent to [1; 2; 3; 4; 5]
let evenNumbers = [2..2..10] // Equivalent to [2; 4; 6; 8; 10]






  • Using list comprehensions



let doubles = [for x in 1..5 -> x * 2] // Equivalent to [2; 4; 6; 8; 10]
let doubles = [for x in 2..2..10 -> x * 2] // Equivalent to [4; 8; 12; 16; 20]







Get element of List




  • Using index



let numbers = [1; 2; 3]
let firstNumber = numbers.[0] // first number 1
let thirdNumber = numbers.[2] // third number 3

printfn "firstNumber %i thirdNumber %i" firstNumber thirdNumber





if you use index not exist in List, will got index out of range exception




let numbers = [1; 2; 3]
let forthNumber = numbers.[4]

printfn "forthNumber %i" forthNumber






compile error:

Unhandled exception. System.ArgumentException: The index was outside the range of elements in the list

the browser environment have bug about this exception




  • Using build-in method List.item



let numbers = [1; 2; 3]
let firstNumber = numbers |> List.item 0

printfn "firstNumber %i" firstNumber






  • head and tail
    List.head, get first element



let numbers = [1; 2; 3]
let head = numbers |> List.head

printfn "head %i" head





List.tail, return list after removing the first element, not the last element




let numbers = [1; 2; 3]
let tail = numbers |> List.tail

printfn "tail %A" tail // tail [2; 3]
printfn "numbers %A" numbers // numbers [1; 2; 3]






tail is a new List not including the first element, it won't change the value of original List numbers






Loop a List




  • for...in




let numbers = [1; 2; 3]

for number in numbers do
printfn "Number: %d" number







  • List.iter




let numbers = [1; 2; 3]

List.iter (fun number -> printfn "Number: %d" number) numbers






fun define a lambda function here, it's equivalent to




let numbers = [1; 2; 3]
let printElement number =
printfn "Number: %d" number

List.iter printElement numbers









Pattern Matching with List






let numbers0 = []
let numbers1 = [1]
let numbers3 = [1; 2; 3]
let describeList lst =
match lst with
| [] -> "The list is empty"
| [x] -> sprintf "The list has one element: %d" x
| [x; y] -> sprintf "The list has two elements: %d and %d" x y
| x :: xs -> sprintf "The list starts with %d and has more elements" x

printfn "%s" (describeList numbers0) // The list is empty
printfn "%s" (describeList numbers1) // The list has one element: 1
printfn "%s" (describeList numbers3) // The list starts with %d and has more elements









Operate List



lists are indeed immutable, which means that you cannot modify a list after it has been created. Any operation that appears to modify a list (such as appending or prepending an element) actually creates a new list




  • Prepending an element




let originalList = [2; 3; 4]
let newList = 1 :: originalList

printfn "Original List: %A" originalList // Original List: [2; 3; 4]
printfn "New List: %A" newList // New List: [1; 2; 3; 4]







  • Appending an element




let originalList = [1; 2; 3]
let newList = originalList @ [4]

printfn "Original List: %A" originalList // Original List: [1; 2; 3]
printfn "New List: %A" newList // New List: [1; 2; 3; 4]







  • Concatenate Lists




let originalList = [1; 2; 3]
let newList = List.append originalList [4]

printfn "Original List: %A" originalList
printfn "New List: %A" newList







  • Filter
    you can not remove an element in List directly as List is immutable, but you can filter element based on some condition, put them into a new List




let numbers = [1; 2; 3; 4; 5]
let evenNumbers = List.filter (fun x -> x % 2 = 0) numbers

printfn "evenNumbers: %A" evenNumbers // evenNumbers: [2; 4]







  • Map
    apply an operation to every elements in List, you can use loop/List comprehensions to achieve that, or use Map




let numbers = [1; 2; 3; 4; 5]
let doubleNumbers = List.map (fun x -> 2 * x) numbers

printfn "doubleNumbers: %A" doubleNumbers // doubleNumbers: [2; 4; 6; 8; 10]







  • Fold
    "fold" or "compress" elements of List of into a single value by applying a function repeatedly




let numbers = [1; 2; 3; 4; 5]
let sum = List.fold (fun acc x -> acc + x) 0 numbers // 15

printfn "sum: %i" sum // sum: 15






step 1: acc = 0 and x = 1 New acc = 0 + 1 = 1

step 2: acc = 1 and x = 2 New acc = 1 + 2 = 3

step 3: acc = 3 and x = 3 New acc = 3 + 3 = 6

step 4: acc = 6 and x = 4 New acc = 6 + 4 = 10

step 5: acc = 10 and x = 5 New acc = 10 + 5 = 15

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten F# For Dummys - Day 12 Collections List

Thematisch verwandte Begriffe: Dummys, Collections, List · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

💬 Kommentare werden geladen…
Zum Aktualisieren ziehen
tsecurity.de Icon
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag