juan_gandhi: (VP)
2013-10-07 08:41 am

programming masterpiece

(from [livejournal.com profile] code_wtf)

In JavaScript, calculate the sum of integers in a nested array.

i.toSource().replace(/\[|\]/g, '').split(', ').forEach(function(a){if(a.match(/^\d$/)) s -= -a})
juan_gandhi: (Default)
2011-06-19 10:50 am

easiest caching in scala

def cached[K,V](f: K => V) : K => V = {
       val cache = new scala.collection.mutable.HashMap[K,V]
       k => cache.getOrElseUpdate(k, f(k))
     }
juan_gandhi: (Default)
2010-12-07 12:52 am

о, всё фигня, срочно в жж записать

Некоторые люди полагают, что лазать по дереву нельзя без того, чтобы узлы держали указатели на родителей.

Потому и дерево, собственно. Если у нас меню, и один пункт повторяется в нескольких местах... короче, не получится. А ведь в принципе что, посет и посет.

Люди более продвинутые хранят сокровенное знание - ссылки на верх не имеют права на существование. Я таких встречал на интервью дважды. Они, возможно, не делятся этим знанием, потому что знают, что никто их не поддержит.

Так вот, читая Beautiful Code, я понял кое-что.

Конечно, ссылок на верх не надо. Родитель содержит списки детей, и всё.

Но когда мы браузим, то мы должны помнить, откуда пришли. Это и есть указатель на родителя. Тут вообще можно обобщать на графы (ну там решить вопрос с циклами)... или на категорию, ё.

Но главное, что стек (при dfs) и хранит всю необходимую информацию.

Стек - это же что-то вроде коданных. Codata. Происходит свёртка с данными.

На эту же тему - кванты неплохо бы в начальной школе преподавать. Да некому. Как 10000 лет назад некому было учить детей грамоте (нет ли тут русофобии).