Visual-textual functional programming with Luna
summary
Luna presents a live visual-textual isomorphic view of a general-purpose functional language implemented in Haskell with a dataflow graph UI, type checking inspired by Haskell plus row polymorphism, lazy call-by-need semantics and a deliberate call-by-need with explicit strictness for effects so lines force evaluation, and a concrete bug example where laziness lets bottom bypass catchAny until forced. Workable demo shows live data visualizations, compilation to JS for the frontend, GitHub open source and planned FFI targets Haskell C JS.
AI-written summary · about
chapters (34)
- 0:00Intro
- 0:16Agenda
- 1:02Data production
- 1:53Software complexity
- 5:10Luna
- 8:42The transom crackle
- 9:01Adjustable layers of abstraction
- 9:40Visualtextual language
- 10:03Graph
- 10:22Benefits
- 10:45Pipeline
- 13:28Type system
- 14:15Accessors
- 15:58Row Polymorphism
- 16:26Role Polymorphism
- 17:25Scala
- 17:50Dot
- 18:47Computational effects
- 21:12Examples
- 24:30Laziness of Haskell
- 26:26Educational example
- 29:44State of the project
- 31:15Contact us
- 32:03Questions
- 33:32Bindings
- 34:20Deployment
- 34:57Type signatures
- 35:40Error messages
- 36:45Lambda frontend
- 37:58Recursion
- 39:03Visualizing functions
- 40:05Playing in slow motion
- 41:21Bugs from getting map and each mixed up
- 42:04Spatial properties of the call graph
related talks
01h 02mToward a New Dev Experience with Leporello.js: Designing a Livecoding Environment
14mExample-Based Live Programming for Everyone: Building Language-Agnostic Tools for Live Programming w
01h 26mHaskell Language Server
27mBuilding functional Front-ends with ClojureScript
01h 02mFunctional Programming for the Everyman
44mHazel: A Live Functional Programming Environment with Typed Holes
47mPrinciples of Clean Functional Programming
37mTextual and Graphical Languages for the Cloud Era
