Immutable worries
Jun. 13th, 2009 01:48 pmНе так все шоколадно в неразрушаемом мире.
http://www.erlang.org/cgi-bin/ezmlm-cgi?4:mss:44582:200906:fheihgcibcpkcjpgfmbj
Текст срезонировал потому что я сейчас делаю IP address longest match lookup (как в таблице маршрутизации) и подумал что мою таблицу в реальный роутер не засунешь. Ибо у меня таблица никогда не перестраивается, поэтому я могу себе позволить ее создавать сколь угодно долго, а в реальном роутере она динамическая. У Ерланга куча наверное очень эффективная, но тем не менее.
It's the same reason so many other fundamental datastructures are missing: they just aren't practical in immutable languages. Skew trees, splay trees, judy trees, julia trees, Knuth's Algorithm X container, Zobrist hashing, basically any ply tree strategy, basically every tree culling algorithm, et cetera - half of the stuff you find in NIST DADS - are casualties. Erlang can't have real mtd(f). Erlang can't have real A*. Erlang can't have real negascout. Erlang can't have real stochastic octrees. Erlang can't have half the stuff you want for caching. You'd do well to just write an interface for a tree or hash to get the expected API behavior and call it a day. If you can't, it's time to write a port.
http://www.erlang.org/cgi-bin/ezmlm-cgi?4:mss:44582:200906:fheihgcibcpkcjpgfmbj
Текст срезонировал потому что я сейчас делаю IP address longest match lookup (как в таблице маршрутизации) и подумал что мою таблицу в реальный роутер не засунешь. Ибо у меня таблица никогда не перестраивается, поэтому я могу себе позволить ее создавать сколь угодно долго, а в реальном роутере она динамическая. У Ерланга куча наверное очень эффективная, но тем не менее.