Second Bridge is a Swift framework for functional programming. Our goal is to make Swift development on par with other functional languages like Scala by adding new data types, functions and operators.
In Scala, thunks are represented by the : => syntax, encapsulating a function that takes no parameters and return a value; to achieve lazy input parameters in functions. It would be nice to use custom operators to create thunks easily, so we can have parameters by name in Swift too.
Apple has changed the way ArraySlices indices work, so Vector now is having a bad time... Need to take a look at how the slices are being built and figure out a way to handle this new way of handling indices.
Also adding some additional tests to check Vector's data integrity would be nice.
As @anamariamv has prepared a great article about Binary Search Trees, it won't hurt to have them in our library as a new immutable data type compatible with the Traversable and Iterable protocols.
Swiftz has an implementation of the State monad. Take a look at it, and see if it's worthy to add on it (i.e.: Scala has a different syntax, how it behaves with what we have in Second Bridge, etc...)
We should take a look on implementing Swiftz's Foldable protocol to Try, or if it doesn't make sense, try to implement it on our own based on a suggestion in this pull request:
Playgrounds examples are nice, but it would be great to have some examples of using Functional Programming concepts, immutable data types, combinators, etc... in some real small apps. Maybe have them inside the project as separate folders or something.
We should take a look on RxSwift, and how it works alongside Second Bridge, in a near future. Coming up with an app using both would be a great way to showcase both (I have an idea for this, but still have to work a little on it!).
So coming up with examples for this would be awesome!