fp-ethereum
fp-ethereum copied to clipboard
Functional Programming for Ethereum: Intro and Resources
A community of functional programming enthusiasts who are interested in bringing functional programming to the Ethereum platform.
Topics of interest:
- Creating a Haskell-like language for the EVM
- Creating a Lisp-like language for the EVM
- Using dependent types to provide formal verification of smart contracts.
Please join us on the fp-ethereum gitter channel for all things FP+ETH:
Resources
Lisp
- The #LLL channel on the status.im slack.
Haskell
- https://github.com/jamshidh/ethereum-client-haskell
- https://github.com/jamshidh/ethereumH
- https://github.com/bkirwi/ethereum-haskell
- https://github.com/blockapps
- https://hackage.haskell.org/package/web3
- Haskell might be relevant to recent happenings in the ethereum world (July, 2016)
- Why Haskellers should be interested in ‘Smart Contracts’
- Barely Functional #1: Writing a Real Program in Haskell
Formal Verification and Dependent Types
- Typed, functional Solidity alternative
- Sample Idris Ethereum smart contracts
- Idris to Serpent back end
- Bhargavan et al. Formal Verification of Smart Contracts.
- Pettersson, Jack and Robert Edström. Safer smart contracts through type-driven development. Using dependent and polymorphic types for safer development of smart contracts. (2016)
- DevCon1: Towards safer languages for smart contracts (video) - Jack Pettersson, Robert Edström, DevCon1, (2015)
- Notes on the DAO re-entrancy bug and behavioral types - Jack Pettersson, Lucius Gregory Meredith
- Total Functioal Programming (audio)
EVM
Early Conversations
- StackExchange: Is functional programming possible on the EVM?
- https://www.reddit.com/r/haskell/comments/2ur1gg/haskell_and_ethereum/
- https://www.reddit.com/r/ethereum/comments/4opjov/the_bug_which_the_dao_hacker_exploited_was_not/
- https://www.reddit.com/r/ethereum/comments/46s1q0/if_you_want_eth_to_be_serious_you_seriously_need/
Welcome Committee
We hope you feel welcomed to this community and that it is easy for you to join in the conversation regardless of your skill level!
Several members of the community have volunteered to answer questions or help you get acquainted with what is going on. Feel free to reach out and say hello!