Install any skill in seconds. Free to start, no credit card required.
Get Started Free →nwave-ai/nw-fp-principles
Core functional programming thinking patterns and type system foundations, language-agnostic
Passed 19 of 22 test cases with the skill, and 17 of 22 without it.
2 fixed17 passed either way3 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 2 test cases the skill fixed. Same model, same prompt, with and without the skill.
A user registration workflow authenticates an API token, fetches details using the returned account ID, and creates default settings based on those details. Step 2 cannot run without Step 1's output. Select the container abstraction pattern that handles this workflow.
| Checked | Without skill | With skill |
|---|---|---|
| Select the Monad abstraction for sequential multi-step execution. | Missed | Passed |
| Explain that monadic chaining handles steps where subsequent inputs depend on prior wrapped outputs. | Missed | Passed |
The instructions your model reads when the skill loads.
Core functional programming thinking patterns. Language-agnostic.
Cross-references: fp-domain-modeling | fp-hexagonal-architecture | fp-algebra-driven-design
[STARTER]
Three operations replace most loops:
| Operation | Purpose | Replaces |
|---|---|---|
| Map | Transform each element, preserve structure | Loop building new collection |
| Filter | Keep elements matching condition | Loop with conditional |
| Fold | Accumulate elements into single result | Loop with running total |
When to use Map: Transform every element without changing collection shape. Nested maps handle nested structures. When to use Filter: Select elements without changing their values. When to use Fold: Reduce collection to single value. Accumulator IS your state. Combining function IS your state transition. Folds make state machines explicit.
Decision: "Am I transforming, selecting, or accumulating?" Pick matching operation. If none fit, compose two.
Why: These operations communicate intent. Map says "same shape, different values." Fold says "many inputs, one output." Loops say nothing about intent until you read every line.
[STARTER]
Write the type signature before implementation. The type tells you what the function can and cannot do.
Process:
test cases passed, vs 17 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.