Is the dynamic operation similar to general concep...
# random
a
Is the dynamic operation similar to general concept of lazy evaluation of functional programming languages? https://docs.dagster.io/_apidocs/dynamic
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
ref: https://en.wikipedia.org/wiki/Lazy_evaluation
s
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():
    print(x)
# this should print 0,1,2,'haha'
but you can consume only 0,1 and ‘haha’ return code never gets reached.
a
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.