Atsushi Saito

04/20/2022, 6:17 AM
Is the dynamic operation similar to general concept of lazy evaluation of functional programming languages?
e.g. Take for example this trivial program in Haskell:
Copy code
numberFromInfiniteList :: Int -> Int
numberFromInfiniteList n =  infinity !! n - 1
    where infinity = [1..]

main = print $ numberFromInfiniteList 4

Samuel Stütz

04/20/2022, 7:30 AM
pretty much it seems to build on generators, same concept as exists in many languages e.g. JavaScript, Python, Kotlin, Scala, Swift, … But it should eventually complete
Copy code
def numberFromFiniteList():
    for x in range(0,3):
       yield x
    return 'haha'
for x in numberFromFiniteList():
# this should print 0,1,2,'haha'
but you can consume only 0,1 and ‘haha’ return code never gets reached.

Atsushi Saito

04/20/2022, 7:35 AM
Yes, I recognize these ones ( JavaScript, Python, Kotlin, Scala, Swift). I am wonder if dagster’s design is to build a kind of data-flow programming languages 🤩 which is contrary to task based “imperative scheduling framework” like AirFlow.
Some people say that many frameworks is task-based and dagster is data-based. So I am considering different between two. 🤔
If task-based framework is considered as an imperative style, then data-based framework is regarded as purely functional style.