Difference between haskell in plutus and haskel in marlowe

whats the difference between haskell in plutus and haskel in marlowe

I’m just guessing here, but nothing…?
Haskell is the functional programming language used for both. Plutus is for more general smart contracts (any type of smart contract) and Marlowe is designed specifically for Financial smart contracts.


Hi Jordan - the point is that Marlowe is embedded in Haskell, rather than the other way around, while Plutus is, essentially, Haskell.

So we can use Haskell constructs to describe Marlowe contracts, but before we run them they are turned into pure Marlowe, eliminating Haskell constructs like recursion.

1 Like

Wait so yeah my brain is in a pretzel trying to figure out what that means. I’m still trying to go through beginer tutorials of haskell and well its complicated…I’m a master at javascript but this is just well completely different to say the least. But I want to learn what is best if plutus haskell is best thing to learn then thats what I think I should learn rather than stuff that has to go through more middleman to get to final product. Although I also need to be able to build stuff I guess and if it takes me 9 years to figure out haskell than obvi wont work.

Idk what u mean haskell contructs to decribe Marlowe contracts. and eliminating haskells recurrsion. Which platform is… yeah idk im not clear as to what this means haha sorry. So marlowe is a language for cardano smart contracts? and smart contracts are written in marlowe? so everything ends up in marlowe and haskell compiles into marlowe? and so all this haskell functional programming recursion stuff is just not used and converted into marlowe however it works there? I guess I figured haskell was the end language. But yeah haskell is taking me so long to figure out I’ve hardly been able to look more into anything cardano specific

And those Marlowe examples, for one js idk why even bother call it that because its not js. All those look the same its like 80 nested when functions. Idk this might just not be for me.

Ho Jordan, if you want to use the full power of Haskell for writing smart contracts, then Plutus is the thing for you. Marlowe gives a special purpose language designed to help with financial contracts of a certain kind, but for generality you still have Plutus.

1 Like

Hi, Simon,
I’m trying to make a youtube video about Cardano Smart Contract in Indonesian Language, where in my video I’m planning to explain both Marlowe and Plutus. Can you please help me to put in humanly possible language about what’s the different? :sweat_smile:

While I’m read your post. Can I conclude that Plutus = Haskell ?
While Marlowe is ?
And which one is more complicated? Which one is for the beginner? Which one is for advance user?
Sorry I’m asking so much question.


Dan - sorry for taking so long to reply.

Yes, Plutus is Haskell, more or less. Marlowe is a special purpose (or “domain specific”) language hosted for financial contracts. It is implemented using Haskell, but the idea is that people can use it without being Haskell experts: there’s a JavaScript embedding, as well as a visual version of the language in Blockly.

So Plutus is intended for developers with programming experience, whereas Marlowe is more for end users. Marlowe is simpler than Plutus, because it is special purpose.

Hope this helps!



Is that mean
Marlowe = Beginner
Plutus = Advance
both are to programming smart contract for Cardano

1 Like

Yes, but also

Marlowe - financial contracts
Plutus - all contracts

Marlowe - guarantees: contracts terminate; no assets held after termination
Plutus - no such guarantees

1 Like

Loud and clear. Thanks a lot for explaining me this. Hope this will help other people too.

1 Like