flow-comprehensions icon indicating copy to clipboard operation
flow-comprehensions copied to clipboard

related work

Open cvogt opened this issue 10 years ago • 10 comments

Ha, looks like other people had similar ideas in the past: https://www.google.com/url?sa=t&source=web&rct=j&url=http://www.cl.cam.ac.uk/~dao29/drafts/codo-notation-orchard12.pdf&ved=0CB8QFjABahUKEwiqlr_xk-3IAhXGpB4KHfABDxY&usg=AFQjCNGgNwAa-zP749_cJ8btZS41MS_pEQ&sig2=m7OAfEFQf4CmFPwUa_UjLQ

cvogt avatar Oct 31 '15 16:10 cvogt

More related work worth checking out for similarities:

http://comonad.com/reader/2007/parameterized-monads-in-haskell/ http://research.microsoft.com/en-us/um/people/nswamy/papers/polymonads.pdf http://www.cl.cam.ac.uk/~dao29/ixmonad/ https://personal.cis.strath.ac.uk/conor.mcbride/Kleisli.pdf

cvogt avatar Nov 09 '15 22:11 cvogt

https://github.com/djspiewak/emm

https://github.com/non/cats/issues/766

cvogt avatar Jan 15 '16 20:01 cvogt

https://github.com/aztek/scala-workflow https://github.com/sbt/sbt/blob/0.13/util/appmacro/src/main/scala/sbt/appmacro/Instance.scala#L45 https://github.com/scala/async#what-is-async http://doc.akka.io/docs/akka/2.3-M1/scala/dataflow.html https://github.com/jedesah/computation-expressions#asyncawait https://github.com/pelotom/effectful

cvogt avatar Feb 02 '16 21:02 cvogt

Here’s a couple more:

  • https://github.com/ThoughtWorksInc/each
  • https://github.com/mandubian/daemonad

stanch avatar Feb 08 '16 17:02 stanch

thanks for sharing. wow, each looks quite advanced already.

cvogt avatar Feb 08 '16 19:02 cvogt

One awesome feature that is only present in scala-workflow (AFAIK) is the ability to use the least interface required. E.g. ~Some(1) + 1 will just use a map / Functor, and ~Some(1) + ~Some(1) will just use app / Applicative instead of flatMap / Monad.

Might be worthwhile to resurrect scala-workflow by replacing untyped macros with a postfix unwrap operation, like it’s done in each and effectful. I tried macro-annotations a couple of years ago, but faced some problems there (see https://github.com/aztek/scala-workflow/issues/2). On the other hand, I don’t think scala-workflow supports all of the language features supported by each, e.g. try, etc.

stanch avatar Feb 08 '16 19:02 stanch

could you make this a separate issue? Worth thinking about. Thx!

cvogt avatar Feb 09 '16 18:02 cvogt

We are definitely planning to add more optimizations of similar nature to this library but details of how are yet to be determined

cvogt avatar Feb 09 '16 21:02 cvogt

I'm not sure what the generic name is for the programming concept of a scope that is suspendable for extraction and injection of values from an outside context. But here's a piece of related work, which eschews category-theoretic thinking: http://blog.paralleluniverse.co/2015/08/07/scoped-continuations/.

acjay avatar Mar 08 '16 00:03 acjay

Interesting paper reference I got at the NYC Haskell meetup https://www.cs.umd.edu/~mwh/papers/swamy11monad.html

Lightweight Monadic Programming in ML - UMD Department of Computer Science

The talk was a out co effects which was very interesting and quite relevant this this as well http://tomasp.net/coeffects/

cvogt avatar Jun 23 '16 02:06 cvogt