enlarge your Haskell

Jan 24, 2008 15:57


Меня очень напрягает дурная работа и дурной язык программирования C++. За это платят, но беспросвет угнетающий.

Я очень хочу найти работу Haskell программиста. Только мне вначале нужно подтянуться, побольше на нем покодить... Трудно время находить - рутина высасывает энергию, - но нужно, иначе ж как.

* Ask Reddit: How do I get a job hacking Read more... )

c++, job, life, haskell

Leave a comment

lionet January 24 2008, 14:39:19 UTC
я пытался принять на работу тех кто знает Erlang или Haskell. ни одного пока не нашёл, видимо их здесь нет таких.

Reply

alexott January 24 2008, 14:48:06 UTC
вы к сожалению далеко - я бы пошел, правда я хаскель не особо хорошо знаю

Reply

vorotylo January 24 2008, 15:10:36 UTC
Странно. Palo Alto, California, Stanford University... Или у меня искаженные представления, или они должны у вас там косяками ходить. :)
Как бы то ни было, интересных job offers в Штатах есть.

> All of the above can be substituted by a good command of Haskell or Erlang.
:) Приятно читать.

> ((function(){})()) idiom
Что за идиома такая? Просвети.

Reply

lionet January 24 2008, 15:17:07 UTC
Странно. Palo Alto, California, Stanford University... Или у меня искаженные представления, или они должны у вас там косяками ходить. :)

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

Что за идиома такая? Просвети.

Создать пустую функцию (closure), и тут же её исполнить. Обычно именно пустая не применяется, применяется нечто вроде (function(i){return i + 1})(i).

Reply

vorotylo January 24 2008, 15:35:47 UTC
lambda какая-то...
i+1 не подходит? :)

Reply

lionet January 24 2008, 16:22:37 UTC
нет, i+1 не катит ;)

например, почему такой код не работает?

var chs = document.....childNodes;
for(var i = 0; i <= chs.length; i++) {
var child = chs[i];
child.onclick = function() {
child.style.visibility = false;
}
}

? ;) один из вариантов решения проблемы - завернуть тело for в closure.

Reply

ext_72902 January 24 2008, 17:49:42 UTC
Ы-ы-ы. Один из нелюбимейших мною косяков в замечательном языке JavaScript. То есть, оно, конечно, не косяк, оно в общую идеологию вписывается замечательно (включая и то, что var child видно извне цикла, причём даже раньше). Но всё равно, ИМХО, контринтуитивно.

Reply

vorotylo January 24 2008, 20:55:03 UTC

Потому что function понятия не имеет о child?

Т.е., надо писать

child.onclick = (function(x) { x.style.visibility = false; })(child);
?

Disclaimer: я ни Java, ни JavaScript не владею... Так что ты меня поправляй. :)

Reply

lionet January 24 2008, 22:50:42 UTC
да не, child виден внутри function ;) не в этом проблема. child везде виден одинаковый: последний, которым child стал после выхода из цикла.

Reply

ext_72902 January 25 2008, 07:47:09 UTC
Если выход из цикла произошёл раньше события onclick...

Reply

lionet January 25 2008, 17:08:07 UTC
да. только когда бы это было не так? ;)

Reply

ext_72902 January 25 2008, 17:25:28 UTC
"Война и мир" на одной странице онлайн-библиотеки и все элементы
?

Reply

lionet January 25 2008, 17:53:59 UTC
не будет все равно. эвенты "ждут" пока цикл закончится.

Reply

ext_72902 January 25 2008, 18:37:25 UTC
М-м-м... По стандарту? В любом случае, это - именно тот момент, когда я ждал бы подлянки.
Кстати, а если эвент уже идёт, когда исполняется цикл? Скажем, цикл - в обработчике того же эвента для body (в фазе спуска)?

Reply

lionet January 25 2008, 20:29:20 UTC
так вот, подлянка здесь - не в том когда эвент произошёл, потому что результат будет один и тот же - когда эвент _произойдёт_, у каждого (разного) child в onmouseclick будет child одинаковый.

это потому что onmouseclick "захватывает" (capture) контекст, где child - это символ, а не значение символа. так как child на момент _исполнения_ клоза (анонимной функции) показывает на последний элемент в массиве (последний раз child указывал на него ведь!), то в onmouseclick child будет везде одинаковый, несмотря на то на каком child этот onmouseclick висит (навешен).

Reply

ext_72902 January 25 2008, 20:40:27 UTC
Да нет, это-то я понимаю (отписал же выше, что это мой нелюбимейший косяк в жабаскрипте). Я о том, что подобное строго однопоточное поведение - ИМХО не то, на что можно закладываться при разработке.

Reply


Leave a comment

Up