fptools ~master
Functional Programming & Useful Tools for D
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
FPTools
Functional Programming & Efficient Tools for D.
Why FPTools?
In Rust, we can use functional programming anywhere because same speed is guaranteed by zero cost abstraction. But in D, we can find functional programming is much slower than OOP or procedural programming. In FPTools, it is also guaranteed like Rust by hand written functions.
Usage
Add Dependency
- Add
dependencies
indub.json
// In dub.json
{
"dependencies": {
"fptools": "~>0.0.2"
},
}
Example
import dtools.fp;
void main() {
mixin FP!long; // You can choose any type to use FP (double, string, int, long and etc.)
Pipe p; // Declare pipeline
p.input(seq(1,100)); // Input sequence
p.proc( // Write Procedures
map(x => 2 * x), // map (Haskell like)
takeWhile(x => x < 100), // takeWhile (Haskell like)
map(x => x / 2), // map (Haskell like)
take(40), // take (Haskell like)
drop(10), // drop (Haskell like)
dropWhile(x => x < 30), // dropWhile (Haskell like)
reduce((x,y) => x * y) // reduce (Haskell like)
);
p.output[0].writeln; // output function exports result as sequence
}
- Registered by Tae Geun Kim
- ~master released 6 years ago
- Axect/FPTools
- BSD 3-clause
- Copyright © 2018, Tae Geun Kim
- Authors:
- Dependencies:
- none
- Versions:
-
0.1.0 2018-Sep-14 0.0.5 2018-Sep-13 0.0.4 2018-Sep-13 0.0.3 2018-Sep-13 0.0.2 2018-Sep-12 - Download Stats:
-
-
0 downloads today
-
0 downloads this week
-
1 downloads this month
-
26 downloads total
-
- Score:
- 0.8
- Short URL:
- fptools.dub.pm