4 ms·
I've been able to use Racket to build an option trading application (https://github.com/evdubs/renegade-way https://github.com/evdubs/renegade-way). The include
by evdubs 5y ago
I've been able to use Racket to build an option trading application (https://github.com/evdubs/renegade-way https://github.com/evdubs/renegade-way). The included GUI and Plot libraries have been really nice to use.
With Racket, I miss having real threads and rich "batteries included" data structures as you'd find in Java and C#.
- samth 5y agoWhich data structures do you miss most?
- evdubs 5y agoSorted data structures :) [Balancing] Binary Search Trees as a standard that is available in many languages; B-Trees if memory locality is important; Skip Lists if there is data structure sharing between real threads and something like a Concurrent Balancing Binary Search Tree would have too much lock contention. I have looked over the `data-red-black` library; I wish its interface was richer with `map`, `filter`, retrieving a range of values, partitioning/sliding over key-value pairs, and all the other generic sequence operations that hopefully Rhombus can enable for different underlying data structures.
- soegaard 5y agoSkip Lists: https://docs.racket-lang.org/data/skip-list.html https://docs.racket-lang.org/data/skip-list.html These functional red/black-trees have `map` and `filter`: https://docs.racket-lang.org/functional-data-structures/Red-Black_Trees.html https://docs.racket-lang.org/functional-data-structures/Red-... AVL-trees: https://docs.racket-lang.org/avl/index.html https://docs.racket-lang.org/avl/index.html I would be surprised if someone hasn't made a B-tree implementation already. As bonus: Another red/black-tree implementation (imperative): https://github.com/soegaard/little-helper/blob/master/planet/galore.plt/2/2/private/raw-red-black-tree-set.scm https://github.com/soegaard/little-helper/blob/master/planet...
- noloblo 5y agoevdubs how can this be run?
- Bost 5y agoWhat do you mean by "real" threads? The Thread documentation says nothing about being real or unreal. https://docs.racket-lang.org/reference/eval-model.html#%28part._thread-model%29 https://docs.racket-lang.org/reference/eval-model.html#%28pa...
- evdubs 5y ago> Threads run concurrently, in the sense that one thread can preempt another without its cooperation, but threads currently all run on the same processor (i.e., the same underlying operating system process and thread). By real threads, I mean the ability to spawn a thread in Racket that corresponds to a new underlying operating system thread for that Racket process. Just like you get when you spawn a thread in Java.
- fineIllregister 5y agoRacket places might be what you seek: https://docs.racket-lang.org/reference/places.html https://docs.racket-lang.org/reference/places.html
- evdubs 5y agoI want to share data structures built for handling concurrency between threads. I'm less interested in having to "share memory" by message passing between places. Plus, places are more clunky to use compared to Racket's `thread`.
- rscho 5y agoRacket can spawn 'real' threads through the Chez low level API. The new database connection package does just that, for example.