[HN Gopher] Koka: Strongly typed functional-style language with ...
       ___________________________________________________________________
        
       Koka: Strongly typed functional-style language with effect types
       and handlers
        
       Author : nateb2022
       Score  : 17 points
       Date   : 2023-12-29 20:53 UTC (2 hours ago)
        
 (HTM) web link (koka-lang.github.io)
 (TXT) w3m dump (koka-lang.github.io)
        
       | pharmakom wrote:
       | What are the practical advantages of Koka over say "IO a" or
       | "Async<'t>" in other languages?
        
         | jitl wrote:
         | Monads need to wrap each other, effects are more composable
        
           | TheMatten wrote:
           | > Monads need to wrap each other, effects are more composable
           | 
           | It's really trickier than algebraic effects make it seem
           | though. Haskell-ish "monad transfomers" as a stack of
           | wrappers may pick concrete ordering of effects in advance
           | (e.g. there's difference between `State<S, Result<E, T>>` and
           | `Result<E, State<S, T>>`, using Rust syntax), but effect
           | systems like one in Koka either have to do the same decision
           | by using specific order of interpreters, or by sticking to
           | single possible ordering, e.g. using one, more powerful
           | monad. And then there're questions around higher order
           | effects - that is, effects with operations that take
           | effectful arguments - because they have to be able to "weave"
           | other effects through themselves while preserving their
           | behaviour, and this weaving seems to be dependent on concrete
           | choice of effects, thus not being easily composable. In a
           | sense, languages like Koka or Unison have to be restricted in
           | some way, giving up on some types of effects. I'm not saying
           | that's a bad thing though, it's still a improvement over
           | having single effect (IO) or no effects at all.
        
       | jitl wrote:
       | > Effect handlers let you define advanced control abstractions,
       | like exceptions, async/await, iterators, parsers, ambient state,
       | or probabilistic programs, as a user library in a typed and
       | composable way.
       | 
       | > Perceus is an advanced compilation method for reference
       | counting. This lets Koka compile directly to C code without
       | needing a garbage collector or runtime system! This also gives
       | Koka excellent performance in practice.
       | 
       | Effectful functional language that compiles to C? Sounds great.
        
       | dang wrote:
       | Related. Others?
       | 
       |  _Koka: A fast functional programming language with algebraic
       | effects_ - https://news.ycombinator.com/item?id=38421003 - Nov
       | 2023 (2 comments)
       | 
       |  _The Koka Programming Language_ -
       | https://news.ycombinator.com/item?id=28335043 - Aug 2021 (2
       | comments)
       | 
       |  _Koka: A Functional Language with Effects_ -
       | https://news.ycombinator.com/item?id=27710267 - July 2021 (12
       | comments)
       | 
       |  _A Tour of Koka (an elegant programming language with Algebraic
       | Effects)_ - https://news.ycombinator.com/item?id=26292411 - Feb
       | 2021 (1 comment)
       | 
       |  _An Introduction to the Koka Programming Language_ -
       | https://news.ycombinator.com/item?id=14647415 - June 2017 (1
       | comment)
       | 
       |  _Koka - A function-oriented programming language_ -
       | https://news.ycombinator.com/item?id=10131071 - Aug 2015 (10
       | comments)
       | 
       |  _Koka a function oriented language with effect inference_ -
       | https://news.ycombinator.com/item?id=4407415 - Aug 2012 (1
       | comment)
        
       ___________________________________________________________________
       (page generated 2023-12-29 23:00 UTC)