I give up rust because it’s not functional enough. There aren’t many things Claude can prove about a table viewer, and Haskell fits very well, and have enough libraries. Claude is pretty good at Haskell. I barely write Haskell before but I do know monad.
I have to warning everyone: Windows terminal with true color , possibly with tmux, is very slow. There is a half second delay from key press to response. I am in a vdi. Your miles varies.
But why do you need serialization?
Because the data structure on disk is not the same as in memory.
Arthur Whitney's k/q/kdb+ solved this problem by making them the same.
An array has the same format in memory and on disk, so there is no serialization,
and even better, you can mmap files into memory, so you don't need cache!
He also removed the capability to define a structure, and force you to use dictionary(structure) of array, instead of array of structure.
Group is actually like inverse a mapping. Given an array A which map index to value, group A map value to index.
A common idiom is: desc count each group A , which list most frequent element first
Human makes a lot of inconsistent thing: We usually think the 1st floor, and the basement as 1st underground floor ( -1), but the floor jumps from 1 to -1!
Also, the time jump from 11AM to 12PM to 1PM!
So I think more human friendly sometimes means more confusing.
I give up rust because it’s not functional enough. There aren’t many things Claude can prove about a table viewer, and Haskell fits very well, and have enough libraries. Claude is pretty good at Haskell. I barely write Haskell before but I do know monad.