atomic
proposal-first-class-protocols
atomic | proposal-first-class-protocols | |
---|---|---|
12 | 1 | |
32 | 348 | |
- | 0.0% | |
6.8 | 0.0 | |
6 days ago | over 1 year ago | |
JavaScript | ||
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
atomic
-
Should all Clojure functions be polymorphic by default?
I wanted ClojureScript, without transpilation, in the browser so badly I implemented much of it in plain JS. But JS still lacks first-class protocols (although there is a T39 proposal for them) so I have to implement protocols first. And I can tell you from having implemented much of Clojure myself in plain JS that it's protocols all the way down. 80% of my library are types and their protocols.
-
Do you do full-on FP in JavaScript? Want it?
I've watched a lot of talks, but it was Rich Hickey's which most captivated me and, ultimately, inspired big change in how I coded. After discovering Clojure I was so desiring FP (i.e. ClojureScript) in the browser without a build step and hoard of dependencies that I wrote my own library.
-
FP and JavaScript/TypeScript
I fell in love with Clojure and ported most of the tools to plain ol' JavaScript. I stole reactives and FRP from Elm. I write a functional core then wrap it with an imperative shell. It's been my mainstay for 10 years now.
-
What do functional programmers like functional programming?
What I did was looked past the languages at the ideas and saw they could be applied everywhere, including JavaScript. Take a look at my example programs (via prior link) and you can see Clojure applied to the JavaScript/browser realm.
-
Writing Javascript without a build system
I have found that the amount of code needed to support any page/app need not be massive. I have implemented modern board games with 250-300KB of js and the core lib I use on all my projects maxes out around 250KB, unminified. The lib itself is built on the premise of build avoidance.
-
Do you guys work with other languages?
I do JavaScript most of the time, but I was so inspired that I ported the Clojure mindset into the web development world so I could use it even in the absence of Clojure. I know there's ClojureScript, but I wanted the goodness without transpilation.
-
On Not Drinking the FP Kool-Aid
So I don't even do Clojure per se. I do Clojure in JavaScript without ClojureScript.
-
side effects in fp: to accept or not to accept
I use functional core, imperative shell. It would have you write a core which is a pure simulation. Write everything in the core using immutable data and pure functions. I elaborate on that here, along with examples.
- GitHub - mlanza/atomic: Write Clojuresque functional core, imperative shell programs in JavaScript.
- Clojuresque functional core, imperative shell programs in JavaScript
proposal-first-class-protocols
-
Do you do full-on FP in JavaScript? Want it?
I'm a web guy. And the browser is my canvas. So JavaScript is my bread and butter. But I've been dying to have more FP goodness in JavaScript. I've eagerly awaited pipelined and partial application (affording tacit style) and records and tuples (immutability all the things!). Once it gets first-class protocols it'll be near full-on Clojure in the browser.
What are some alternatives?
vscode-haskell - VS Code extension for Haskell, powered by haskell-language-server
purely-functional-data-structures - TypeScript implementations and exercises from Chris Okasaki's book, Purely Functional Data Structures
episode-code-samples - 💾 Point-Free episode code.
tallstack - A small library (<11 kB) which defines tail recursive functions in JavaScript which avoid call stack overflow.
electric - a reactive Clojure dialect for web development that uses a compiler to infer the frontend/backend boundary
proposal-command-syntax - Proposal: Command Syntax for JavaScript
squint - Light-weight ClojureScript dialect
euphoria - The Euphoria programming language (https://openeuphoria.org/)
learn-you-a-haskell - “Learn You a Haskell for Great Good!” by Miran Lipovača
elm-architecture-tutorial - How to create modular Elm code that scales nicely with your app
todomvc - Helping you select an MV* framework - Todo apps for React.js, Ember.js, Angular, and many more