Skip to content

This is a log of everything I have learned about Haskell. The ultimate goal is to become a Plutus contract developer.

Notifications You must be signed in to change notification settings

Jonathansoufer/Haskell-Plutus-journal

 
 

Repository files navigation

Haskell-Plutus-journal

Why Haskell?

The purpose of this journal is to learn how to write high-assurance smart contracts and document my progress with the team. Unlike, Solidity, which has only been around for 5 years, Haskell was invented in the late 80s so not only did it have more time to grow, but it has more capabilities than its imperative counterpart, solidity. As a functional programming language, there is no need to define every function in Haskell, because everything is a function, combine that with type inference from the compiler, that leaves less room for error. It may be a good idea to design a website using an imperative programming language, but when it comes to writing smart contracts that handle millions of dollars of cryptocurrencies, and people's identities, the consequences of failure are significantly higher. Its not a coincidence that Haskell is used by top tier investment banks, air-traffic controllers, and X-ray technicians; the margin of error is miniscule, otherwise people could die! A great example of the consequences of failure is the DAO hack of 2016

Underlying reasons for developing on Cardano

Because I'm too busy to explain why we're developing on Cardano, watch these videos for your own education and amusement:

Eric Manganaro explains why the killer app of Haskell is plutus contracts.

Hasan Michael giving a broad overview of the Cardano Blockchain.

President of Cardano, Charles Hoskinson, explains how unbanked countries will be the leading customer base for DeFi.

Resources

Learn you a Haskell

FP Discord

Gimbalabs project based learning

this is an archive of all the Plutus Pioneer lectures so far!

The Cardano Stack Exchange!

This is documetation on how to set up Plutus on your local environment. For Apple Silicon users, YOU MUST download Rosetta first and setup your dependencies in an Intel-based VS Code. The reason for this because IOHK does not have M1-compatible dependencies yet.

this is a PDF file of all the Haskell operators and what they mean.

This Blog explains how Plutus works.

Plutus code examples.

This is the github for the plutus pioneer program, they have homework assignments and lecture notes for you to use!

Cardano Developer tools.

Professsor Graham Hutton's lectures on Haskell.

WikiHaskell.

This is the IOHK discord. Even if you're not in the Plutus Pioneer program, these guys are super chill and they will help you with whatever you need! :)

This is a link to the Cardano Developer subreddit!

Haskell subreddit!

About

This is a log of everything I have learned about Haskell. The ultimate goal is to become a Plutus contract developer.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 100.0%