Nesen laists klajā jauna programmēšanas valodas F# spēka paka jeb Power Pack, kas apvieno dažādas interesantas un noderīgas lietas, kuras nav ietvertas standarta valodas bibliotēkās.
Neliels ieskats power pakas saturā, kas sastāv no vairākām bibliotēkām:
- FSharp.PowerPack.dll
- Vairākas jaunas maināmi (immutable, atceramies, ka pēc noklusējuma F# tipi nav maināmi) datu tipi, piemēram, HashMultiMap, kā arī vairākas paplašinātās metodes, kuras sniedz funkcionālu pieejas interfeisa tādām datu struktūrām, kā piemēram, List<T>.
- Dažādi matemātiskie datu tipi (Vector, Matrix, utt).
- F# SI mērvienību definēšana izmantojot mērvienību valodas konstrukciju.
[<Measure>]
/// hertz, SI unit of frequency
type Hz = s^-1
-
- Kā arī papildinājumus Async programmēšanai, piemēram, asinhrono I/O paplašinājumus, kā arī dažādas palīdzības funkcijas.
- Ir pieejams F# dokumentācijas ģenerators (FsHtmlDoc.exe).
- FSharp.PowerPack.Linq.dll – piedāvā F# pieeju dažādām .Net 3.5 platformas iespējām.
- Konvertātori uz izteiksmju kokiem
let adderExpr = <@ fun i -> i + 1 @>.ToLinqExpression ()
let adder = <@ fun i -> i + 1 @>.Compile()
-
- Pieejams jauns query operators.
let db = new NORTHWND(connString)
let sameCountry =
query <@ seq { for e in db.Employees do
for c in db.Customers do
if e.Country = c.Country then
yield (e,c) } @>
- FSharp.PowerPack.Parallel.dll – piedāvā dažādas paralēlās operācijas uz datu kopām, kuras ir jau pieejamas kā bāzes klases .Net 4.0 platformas versijā.
let nums = [|1..500000|]
let finalDigitOfPrimes =
nums
|> PSeq.filter isPrime
|> PSeq.groupBy (fun i -> i % 10)
|> PSeq.map (fun (k, vs) -> (k, Seq.length vs))
|> PSeq.toArray
Power paka pieejama šeit - http://fsharppowerpack.codeplex.com/.
Cerams, ka noderēs!