Welcome to the blog of Manuel M T Chakravarty. I am a computer scientist with a background in programming languages, parallel programming, distributed systems, and cryptography. My current research is mostly at the intersection of programming languages and cryptography with applications to permissionless blockchains. I am also a software developer who is passionate about functional programming. I develop for macOS, iOS, and Linux. I am the principal developer of Haskell for Mac, a unique…
Functional data structures in Swift One of the intriguing features of Swift is its distinction between value types and reference types. Conceptually, value types are always copied in assignments and passed-by-value in function calls — i.e., they are semantically immutable. In contrast, for reference types, Swift only copies a pointer to an object on an assignment and they are being…
Functional Programming in Swift When people talk about functional programming in modern multi-paradigm languages, they usually mention Rust, Scala, or Kotlin. You rarely hear Swift being mentioned. This is odd, as one might argue that, of these languages, Swift places the strongest emphasis on functional programming. In this talk, I will explain the core functional programming features of Swift,…
In this talk from the Cardano 2020 Virtual Summit, I am explaining the design of the custom native asset functionality of Cardano (starting at 18:40min). This is based on the work published in the following two research papers at ISoLA 2020: UTXOma: UTXO with Multi-Asset Support and Native Custom Tokens in the Extended UTXO Model . Custom native assets are supported on the Cardano mainnet since…
This is the video of the keynote talk “Blockchains are functional” that I delivered at the ACM SIGPLAN International Conference on Functional Programming 2019 . Here is the abstract: Functional programming and blockchains are a match made in heaven! The immutable and reproducible nature of distributed ledgers is mirrored in the semantic foundation of functional programming. Moreover,…
In the Plutus & Marlowe team at IOHK , we developed an extension to Bitcoin-style UTxO ledgers that we are calling the Extended UTxO Model and that significantly extends the contract scripting capabilities of such ledgers. On top of that new, more powerful ledger model, we developed a domain-specific language for financial contracts, called Marlowe . We have got two papers at the 4th Workshop on…
Check out the draft of the paper describing the principles underlying Plutus Platform. Here the abstract: Distributed cryptographic ledgers —aka blockchains —should be a functional programmer’s dream. Their aim is immutability: once a block has been added to the chain it should not be altered or removed. The seminal blockchain, Bitcoin, uses a graph-based model that is purely functional in nature.…
My talk “Rethinking Blockchain Contract Development” from Lambda Days 2019 , where I outline why blockchains and functional programming are a good fit and how we are exploiting that in the development of Plutus Platform — the contract layer on top of the Cardano proof-of-stake blockchain. I am also discussing the research-driven development methodology around Cardano.
This is a video interview, where I am talking about what I see as the value proposition of functional programming, functional programming in industry, and how the YOW! Lambda Jam conference helps developers to get the most out of functional programming.
Why functional programming? Why blockchains? What is the architecture of the Plutus Platform for contract development and why is it based on Haskell? These are some of the questions that I am trying to answer in this video interview.
About six weeks ago, I moved from Sydney, Australia, to Utrecht in the Netherlands. Naturally, I started to learn Dutch.(*) This post is mainly a summary of the things I found helpful so far. Apparently, the Netherlands is becoming an increasingly popular expat destination ( cough Brexit cough ), so this might be useful to some. I quickly discovered that, even after living in an English-speaking…
If you like to get a thorough introduction to functional programming in Haskell, check out the Applied Functional Programming Summer School , which is 27-31 August in Utrecht, Netherlands. It is part of Utrecht University’s summer school program and will have Koen Classen , Gabriele Keller , and myself as guest lecturers .
This is the video of the Sydney instance of my YOW! Night tour this month, talking about “Demystifying functional programming and what that means for learning & teaching” — i.e., teaching FP to the early majority of adopters ( slides ).
In March, I will talk about Demystifying functional programming and what that means for learning & teaching in four different cities: March 6 – Sydney / March 8 – Melbourne / March 13 – Perth / March 22 – Brisbane. This talk will outline the thinking behind my Welcome to FP workshop at YOW! Lambda Jam 2018 , which will be a general introduction to functional programming.
Do you know how to write FP compilers? Would you like to design & implement next-generation, functional(!) smart contract languages with Phil Wadler and myself? Check out Phil’s post and the IOHK job ad .
Here is the video of my Functional Conf 2017 talk Haskell SpriteKit — a Purely Functional API for a Stateful Animation System and Physics Engine . In this talk, I am explaining how to wrap an OOish game engine API based on a mutable scene graph into a purely functional API based on an immutable algebraic data type.
This coming weekend, I will present Haskell SpriteKit — a Purely Functional API for a Stateful Animation System and Physics Engine as well as a workshop on Functional Programming in Swift at Functional Conf in Bangalore.
Two months back, I gave my talk “Do-It-Yourself Functional Reactive Programming” at the Sydney CocoaHeads meetup . I am explaining what FRP is all about, how to easily implement an FRP library in Swift, and how to use it in an iPhone app.
Keynote: Do-It-Yourself Functional Reactive Programming | SkillsCast | 30th March 2017 : A video of my iOSCon 2017 talk, where I develop a basic FRP system in Swift, is now online.