Haskell.Prelude
1.0.0
dotnet add package Haskell.Prelude --version 1.0.0
NuGet\Install-Package Haskell.Prelude -Version 1.0.0
<PackageReference Include="Haskell.Prelude" Version="1.0.0" />
paket add Haskell.Prelude --version 1.0.0
#r "nuget: Haskell.Prelude, 1.0.0"
// Install Haskell.Prelude as a Cake Addin
#addin nuget:?package=Haskell.Prelude&version=1.0.0
// Install Haskell.Prelude as a Cake Tool
#tool nuget:?package=Haskell.Prelude&version=1.0.0
The well-tested analogy for part of very usefull Haskell's basic functions library created in C#.
Implemented:
Abs
Map
Foldr
Foldr1
Foldl
Foldl1
Head
Tail
All
And
Or
Chr
Ord
Break
Span
Concat
ConcatMap
Const
Not
DigitToInt
Drop
Even
DropWhile
Elem
Any
Filter
Flip
Fst
Snd
GCD
ID
Init
Iterate
Last
LCM
Length
Lines
Max
Min
Maximum
Minimum
NotElem
Null
Odd
Repeat
Replicate
Take
Reverse
Show
Sort
SplitAt
TakeWhile
ToUpper
IsUpper
ToLower
IsLower
Unlines
Until
Unwords
Words
Zip
ZipWith
Atan
Compare
Cos
Div
Error
Exp
Floor
FromIntegral
IsAlpha
IsDigit
IsSpace
Log
Mod
Product
Rem
Quot
Sin
Sum
Truncate
Implemented like:
Extensions - the most significant param is extended and, of course, the first one (usually the enumerator of something)
Changes:
Error does not return a type
Compare returns same value as CompareTo (-1, 0, 1) instead Eq enum (LT, EQ, GT)
FromIntegral just casting int to double
Print and PutStr have additional parameter StringBuilder which return after write
Implementation details:
The mathematical functions like sin, cos, .. are easyilly implemented using System.Math and was not tested
The class use nothing more then System library and Ienumerable interface
The numerict functions are supported only for int and double (Sum, Product)
Not implemented:
pred
succ
undefined
operators - it is not posible define or redefine properly (you have to use standard C# operators)
Use only these functions can be useful for production code or like exercise for work with functions and composition of functions,
but a lot of from prelude has been already implemented in System.Linq.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 790 | 11/15/2019 |
1.0.0-rc.1 | 246 | 11/13/2019 |
1.0.0-rc | 609 | 11/12/2019 |