F-Sharp



Internett er en uuttømmelig kilde til kunnskap, også når det gjelder F-Sharp. Århundrer og århundrer med menneskelig kunnskap om F-Sharp har blitt strømmet inn i nettverket, og fortsetter å bli strømmet ut, og det er nettopp derfor det er så vanskelig å få tilgang til det, siden vi kan finne steder hvor navigering kan være vanskelig eller direkte upraktisk. Vårt forslag er at du ikke blir forliste i et hav av data som refererer til F-Sharp og at du kan nå alle visdomshavnene raskt og effektivt.

Med sikte på det målet har vi gjort noe som går utover det åpenbare, ved å samle inn den mest oppdaterte og best forklarte informasjonen om F-Sharp. Vi har også ordnet den på en slik måte at lesingen er fornøyelig, med et minimalistisk og behagelig design, som sikrer den beste brukeropplevelsen og kortest lastetid.Vi gjør det enkelt for deg slik at du bare trenger å bekymre deg for å lære alt om F-Sharp! Så hvis du tror vi har oppnådd formålet vårt og du allerede vet hva du ville vite om F-Sharp, vil vi gjerne ha deg tilbake på disse rolige sjøene i sapientiano.com hver gang din hunger etter kunnskap vekkes igjen.

F # (Les: F skarp , engelsk uttale [ f rp ]) er en type trygg multi- paradigmet språk med et sterkt fokus på funksjonell programmering for .NET rammeverket. Syntaksen er veldig lik den for OCaml , da dette språket fungerte som en modell for implementering av alle funksjonelle språkelementer og den tvingende siden av F #, som er avledet fra C # , sjelden blir brukt. I tillegg til disse komponentene inneholder F # også objektorienterte språkkonstruksjoner som passer inn i dette språkkonseptet.

F # er fullt interaktiv med alle andre språk på .NET- plattformen, og takket være .NET Core og Mono, gir den muligheten til å bruke koden på Windows så vel som Linux, BSD og illumos- familiene og macOS . Android og iOS er også mulig som målplattformer via Xamarin .

F # ble opprinnelig utviklet som et forskningsprosjekt av Microsoft Research , men videreføres for tiden av Microsofts utviklingsavdeling og F # Software Foundation. F # ble offisielt støttet og sendt for første gang som en del av Visual Studio 2010. I november 2010 ble F # og tilhørende kompilatorer og biblioteker gitt ut under Apache License 2.0 .

Noen språkfunksjoner

verdier

I overveiende tvingende språk er variabler den primære språkkonstruksjonen for lagring av verdier. I funksjonsorienterte programmeringsspråk som F # gjøres dette ved hjelp av uforanderlige språkkonstruksjoner. Verdier av en bestemt type kan deklareres med det ofte brukte nøkkelordet let .

let pi = 3.1415927
let name = "John"

F # gir typeavledning ; H. Uttrykkstyper bestemmes automatisk. Får for eksempel piautomatisk den typen flytende - bokstavelig tildelt.

Endre variabler er mutablemulige med nøkkelordet. Disse endres deretter med oppdragsoperatøren <-.

let mutable x = 10
x <- 15

Endring av verdier etterpå er også mulig ved bruk av såkalte referanseceller :

let x = ref 0     // x hat den Typ "int ref", ist also eine Referenz auf einen Integer
x := 5            // x wird ein neuer Wert zugewiesen
printfn "%i" !x   // Mittels des "!"-Operators wird x dereferenziert. Gibt 5 aus.

Funksjoner

Funksjoner blir erklært som andre verdier letog kan forvente parametere:

let square x = x * x
let add x y = x + y

Funksjoner kan forvente funksjoner som parametere (se høyere ordensfunksjon ):

let do_twice f x = f (f x)

Parametertypene gjenkjennes automatisk, men kan også erklæres eksplisitt:

let add (x: int) (y: int) :int = x + y
let do_twice (f : int -> int) (x: int) = f (f x)

Instruksjonen

printfn "%A" (do_twice square 5)

returnerer 625 (kvadratet av kvadratet på 5). do_twiceVed hjelp av komposisjonsoperatøren og etter Eta-reduksjon kan funksjonen også brukes som

let do_twice f = f >> f

skal skrives.

I eksempelet ovenfor, squareer den type bestemt for, dvs. er en funksjon som forventer en parameter av den type og returnerer en verdi av den type som . For du får typen . Dette betyr, er en funksjon som mottar en verdi av typen som den første parameteren (en funksjon med en parameter av typen og en returverdi av typen ). Som en annen parameter mottar den en verdi av typen, og den returnerer en verdi av typen . har rollen som en typevariabel her (omtrent sammenlignbar med generiske parametere eller malparametere i Java / C ++ , se Polymorfisme (programmering) ). int -> intsquareintintdo_twice('a -> 'a) -> 'a -> 'ado_twice('a -> 'a)'a'a'a'a'a

I F # overføres parametere til funksjonen uten parenteser osv., Atskilt bare med mellomrom. Bare hvis returverdien til en annen funksjon kreves som parameter, må parenteser settes for å definere evalueringsrekkefølgen for uttrykkene. Med verdiene 5 og 8 tilhører funksjonen ; returverdien er en parameter for funksjonen . printfn "%A" (add 5 8)addprintfn

F # muliggjør lukking og bruker curry automatisk:

let add x y = x + y
let inc = add 1

I definisjonen av incer den første parameteren til funksjonen addknyttet til verdien 1. Resultatet av denne delvise funksjonsapplikasjonen er en ny funksjon med bare én parameter. Evalueringen av uttrykket

inc 5

returnerer 6 som resultat.

F # støtter tupler :

let u = (3, 6)
let v = (2, -3)
let add (a, b) (c, d) = (a + c, b + d)
let x, y = add u v

F # tilbyr diskriminerte fagforeninger og mønstermatching :

// Ein Element vom Typ Baum ist entweder ein "Ast" und enthält zwei Elemente vom Typ "Baum",
// oder es ist ein "Blatt" und enthält einen Integer
type Baum =
| Ast of Baum * Baum
| Blatt of int

let rec baumSumme x =
    match x with
    | Ast(l, r) -> baumSumme l + baumSumme r
    | Blatt(x)  -> x

Det er også typeleverandører for typesikker behandling av eksterne data med IntelliSense.

Objektorientert programmering er også mulig i F # . Eksempel på klassedeklarasjon:

type Person =
    val name : string
    val mutable age : int
    new(n, a) = { name = n; age = a }
    member x.Name = x.name
    member x.Age
        with get() = x.age
        and set(v) = x.age <- v
    member x.Print() = printfn "%s ist %i Jahre alt." x.name x.age

Nullpekere kreves bare for interaksjon med klasser fra .NET-rammeverket.

syntaks

To former for syntaks er mulig i F # -kode: enkel syntaks og detaljert syntaks. Den enkle syntaksen brukes som standard, men innrykkene er veldig viktige i denne formen. Disse spiller en mindre rolle i den detaljerte syntaks, fordi søkeord som for eksempel begin, endog inbegynnelsen og slutten av kodeblokker avgjøre det.

Eksempel på den enkle og detaljerte syntaksen:

enkel syntaks detaljert syntaks
let mutable x = 1

while x < 3 do
    x <- x + 1
let mutable x = 1

while x < 3 do
    x <- x + 1
done
type Person =
    val name : string
    val mutable age : int
type Person =
class
    val name : string
    val mutable age : int
end

Når det gjelder den enkle syntaksen, er innrykkene obligatoriske. I tilfelle den detaljerte syntaksen kan de også utelates.

Utviklingsmiljø og kompilator

F # -kode er samlet , og skaper mellomkode i Common Intermediate Language (CIL), akkurat som programmer skrevet i C # eller VB.NET .

Det er også et interaktivt miljø eller F # tolk , F # Interactive eller FSI for kort. Så du kan skrive koden direkte i konsollen . Oppføringer i tolken må fullføres med ;;, noe som også muliggjør flere linjeposter. Når den er kompilert, kjører F # Interactive koden og skriver signaturen til alle kompilerte typer og verdier i konsollvinduet. Feilmeldinger sendes også ut på denne måten.

Denne tolken tillater kjøring av kode i støttede redaktører, for eksempel Visual Studio Code, uten forhåndskompilering, som kjent fra dynamiske språk.

Eksempler

Følgende eksempler viser " Hello World ".

let main = System.Console.WriteLine("Hello World")

eller

printfn "Hello World"


Følgende funksjon implementerer den rekursive Ackermann-funksjonen :

let rec ack m n =
    if m = 0 then n + 1
    else if n = 0 then ack (m - 1) 1
    else ack (m - 1) (ack m (n - 1))

litteratur

weblenker

Individuelle bevis

  1. Annonsering av F # 5. november 2020, åpnet 11. november 2020 (amerikansk engelsk).
  2. Annonserer F # 5 forhåndsvisning 1. mars 19. 2020, åpnet 9. juni 2020 (amerikansk engelsk).
  3. F # skal sendes som en del av Visual Studio 2010 . Don Symes weblogg om F # språk og relaterte emner
  4. Skriv leverandør
  5. Verb Microsoft Verbose Syntax (F #)
  6. Microsoft F # interaktiv referanse

Opiniones de nuestros usuarios

Erna Dahle

Takk. Artikkelen om F-Sharp hjalp meg.

Johan Halvorsen

Jeg synes måten denne oppføringen på F-Sharp er formulert på veldig interessant, den minner meg om skoleårene mine. Hvilke vakre tider, takk for at du tok meg tilbake til dem.

Line Jenssen

Det stemmer. Gir nødvendig informasjon om F-Sharp.

Sven Markussen

Denne oppføringen på F-Sharp har fått meg til å vinne et veddemål, som mindre enn gir det en god poengsum.

Aase Engen

Informasjonen om F-Sharp er veldig interessant og pålitelig, som resten av artiklene jeg har lest så langt, som allerede er mange, fordi jeg har ventet på Tinder-datoen min i nesten en time og den vises ikke, så det gir meg som har reist meg opp. Jeg benytter anledningen til å legge igjen noen stjerner for selskapet og drite på livet mitt.