[JAVA] Versuchen Sie es mit der F # -Liste

Am Anfang

Ich habe mit der F # -Liste herumgespielt

Beispielquelle

module File1
//Versuchen Sie es mit einer Liste
//Deklarieren Sie eine Liste
let strs= ["dogs";"cats";"bird"]

//Versuchen Sie, das Format mit printfn zu deklarieren
printfn "%A" strs //["dogs"; "cats"; "bird"]Wird angezeigt
printfn "%O" strs //[dogs; cats; bird]Wird angezeigt

//Greifen Sie mithilfe des Mustervergleichs auf die Liste zu
//Musterübereinstimmung 1
let rec accessList strs =
    match strs with
    |x::xs->printfn "%O " x;printfn "%O " (accessList xs);x+" a"
    |[]->printfn "Das Ende";"b"

//Musterübereinstimmung 2
let rec accessList2 strs =
    match strs with
    |x::xs->printf "%O " x; accessList2 xs
    |[]->printfn "Das Ende";

in
//Da es einen Rückgabewert gibt, müssen Sie das Ergebnis mit let binden
let a=accessList strs
//dogs
//cats
//bird
//Das Ende
//b
//bird a
//cats a
//Wird angezeigt

printfn  "Zeigen Sie das durch let gebundene Ergebnis an"
printfn "%s" a
//Zeigen Sie das durch let gebundene Ergebnis an
//dogs a
//Wird angezeigt

accessList2 strs
//Hunde Katzen Vogel Das Ende wird angezeigt

Memo

Über das Ausführungsbild von Teil 1 "Pattern Match Part 1"

Es sieht so aus, als ob das Ausgabeergebnis des Programms angezeigt wird, und es sieht aus wie in der folgenden Abbildung. image Wenn Sie mit [] -> vom übereinstimmenden Teil ausgehen, ist es möglicherweise einfacher, das Ausführungsbild der rekursiven Verarbeitung zu erfassen.

Über die Liste der funktionalen Sprachen

Es ist ein Bild, das sowohl die Eigenschaften von Java List als auch von Deque (Stack) aufweist. Die Liste der funktionalen Sprachen schien eine flüssigere Listenoperation zu haben als die Liste von Java, aber wenn sie auch die Eigenschaft von Deque (Stack) hat, kann dies natürlich sein.

Recommended Posts

Versuchen Sie es mit der F # -Liste
Versuchen Sie es mit libGDX
Versuchen Sie es mit Maven
Versuchen Sie es mit SwiftLint
Versuchen Sie es mit Log4j 2.0
Versuchen Sie es mit dem Axon Framework
Versuchen Sie es mit der REST-API von JobScheduler
Versuchen Sie es mit der Methode java.lang.Math
Versuchen Sie es mit der WhiteBox von PowerMock
Versuchen Sie es mit Talend Teil 2
Versuchen Sie es mit Talend Teil 1
Versuchen Sie es mit der Methode each_with_index
Versuchen Sie es mit Spring JDBC
Versuchen Sie es mit GloVe mit Deeplearning4j
Versuchen Sie, mit Java zu kratzen [Hinweis]
Versuchen Sie es mit Cocoa von Ruby
Versuchen Sie es mit IntelliJ IDEA, da Sie dies nur einmal tun müssen
Versuchen Sie es mit Spring Boot Security
[Rails] Versuchen Sie, Faradays Middleware zu verwenden
[Verarbeitung] Versuchen Sie es mit GT Force.
[Vollständige Programmierung] §2 Versuchen Sie es mit Ruby
Aufzählung von Kombinationsmustern mit List
Probieren Sie Redmine auf dem Mac Docker aus
Versuchen Sie es mit Redis mit Java (jar)
[Java] Versuchen Sie, mithilfe von Generika zu implementieren
Versuchen Sie es mit dem Nachrichtensystem Pulsar
Versuchen Sie es mit der IBM Java-Methodenverfolgung
Versuchen Sie es mit dem Java SDK von Hyperledger Iroha
[Java] Wo haben Sie versucht, Java zu verwenden?
So sortieren Sie eine Liste mit Comparator
Versuchen Sie es mit dem Java Framework Nablarch [Web Application]
Versuchen Sie, || anstelle des ternären Operators zu verwenden
Versuchen Sie, den Dienst auf Android Oreo zu verwenden
Versuchen Sie es mit der Stream-API in Java
Java lernen Versuchen Sie es mit einem Scanner oder einer Karte
Versuchen Sie es mit der JSON-Format-API in Java
Versuchen Sie es mit Spring Boot mit VS-Code
Versuchen Sie es mit Reladomos MT Loader (Multi-Threaded Matcher Loader).
Versuchen Sie es mit der Emotion API von Android
Versuchen Sie es mit der Wii-Fernbedienung in Java
Versuchen Sie es mit simple_form / edit sogar untergeordneten Modellen
Versuchen Sie, einen GraphQL-Server mit grahpql-java-tools (+ kotlin) zu implementieren.