6 ms·
I've been working on something like this on and off for the past 4 years or so, although with something more like generators than streams. I think it's a very,
by PeCaN 6y ago
I've been working on something like this on and off for the past 4 years or so, although with something more like generators than streams.
I think it's a very, very promising idea (I admit to heavily being biased towards anything APL-influenced) although surprisingly difficult to get right. Gilad Bracha is obviously way smarter than me so I'm definitely curious where he goes with this.
One additional idea that I keep trying to make work is integrating variations of (constraint) logic programming and treating solutions to a predicate as a generator or stream that operations can be lifted to rank-polymorphically. As a simple example a range function could be defined and used like (imaginary illustrative syntax)
range(n,m,x) :- n <= x, x <= m
primesUpto(n) = range(2,n,r), # create a generator containing all solutions wrt r
mask(not(contains(outerProduct(*, r, r), r)), r) # as in the video
I've never really gotten this to work nicely and it always feels like there's a sort of separation between the logic world and the array world. However this feels incredibly powerful, especially as part of some sort of database, so I keep returning to it even though I'm not really sure it goes anywhere super useful in the end.
- hobby-coder-guy 6y agoWhat does “:-“ mean?
- asimpletune 6y agoProbably “such that”
- Groxx 6y agoHave you seen Halide? https://halide-lang.org/ https://halide-lang.org/ It's a bit special-cased (afaict), but it sounds like it makes at least a solid step in this sort of direction.