Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: witchcrafters/witchcraft

Monads (and reorganize)

12 Sep 12:30
@expede expede

Choose a tag to compare

Pre-release

Monads

Finally, monads! Still could use more documentation, but they're here and they work 😄

[1, 2, 3] >>> fn x ->
 [x + 1] >>> fn y ->
 [y * x, y * 10, x - 1]
 end
end
#=> [2, 20, 0, 6, 30, 1, 12, 40, 2]
[1, 2, 3]
>>> fn x -> [x + 1] end
>>> fn y -> [y * 10, y - 1] end
#=> [20, 1, 30, 2, 40, 3]

Of course they work on things other than lists. I'll will be moving the ADT-specifc implementations to Algae, so if you want Maybe, Either, and friends, please use it in conjunction with that library.

Major Reorganization

Still a bunch more to do, but this is already much better. Merging to master, and will continue to tighten stuff up and work through the roadmap.

Loading

Applicative Functor

12 Jan 08:52
@expede expede

Choose a tag to compare

Applicative Functor Pre-release
Pre-release

Applicative Functors are here!

Things to note:

  • wrap (i.e.: pure) & apply are here!
    • Operator for apply: <<~ and ~>>
    • Reversed operator arrow direction for consistence with Elixir
      • ie: in Haskell we think about applyping "over" things (apply [(+1)] [1,2,3])
      • In Elixir, we're piping thing into the application ([1,2,3] ~>> [&(&1 + 1)])
      • Can still write in the Haskell order, with reversed operators:
        • Haskell: (\x y -> x + y) <$> [1,2,3] <*> [4,5,6]
        • Elixir: &(&1 + &2) <~ [1,2,3] <<~ [4,5,6]
  • Have to exclude Kernel.apply for modules
    • In the future, we will either need to create a use, or rename apply (probably the later)
Loading

Functor

08 Nov 21:43
@expede expede

Choose a tag to compare

Functor Pre-release
Pre-release

Functor protocol, functions, and spot-check helpers

  • Only the covariant functor, more varieties will follow
Loading

Monoid

29 Oct 17:17
@expede expede

Choose a tag to compare

Monoid Pre-release
Pre-release

First draft of the Monoid protocol

Loading

AltStyle によって変換されたページ (->オリジナル) /