← All posts tagged Erlang

Обычно, выбор языка/платформы чисто формален, и основывается не столько на тех-задании, сколько на предпочтениях, цене (Java дешевле Scala разработчиков например).

Но я не видел, ничего лучше Erlang+Eresye для Agent Oriented программ. Но люди продолжают использовать JADE, писать 2-3 DSL для Knowledge Base и биться головами о стену. Они говорят — Jade is Java. и на Яву, как известно наделали кучу библиотек. Только они на фиг не нужны ^_^

Где то две недели назад, я заказал две библиотеки, одна на C++ другая на Erlang, для работы с актерами, суть была в том, что бы оттестировать эквивалентный по функциональнсти код. Мне больше понравился Erlang – он медленней на 2 процентов, но он раза в 4-5 короче, что позволит выпускать прототипы ИИ намного чаще.
Но 90 процентов Game Dev'а, использует C++. Страшно, не могу решится, трудно иногда быть черной барашкой, мало библиотек, мало у кого спросить совета.

Мне нужно сохранять state процесса и брать данные – я так понимаю для этого существует process dictionary. Насколько это хороший подход с точки зрения производительности и чистоты кода (best practices так сказать) ?

Предположим есть структура:
likes(Sam, Alex)[source(percept(eyes)),source(Peter, trust(50)]
Это читается как:
Агент (далее А) верит что Сэму нравится Алекс — (likes(sam, alex). Данное верование основано на двух источниках:
1) Персептор-глаза, то есть А увидел Сэма и Алекс и заключил.
2) Друго Агент-Питер сообщил об этом А. А доверяет Питеру на 50 (абстрактный коэффициент).

Как это удобней записать в Erlang, без record?. Агенты могут обмениваться подобной информацией между собой, и окружающей средой до 120 раз в секунду (по 2 обновления на кадр).

Кстати, после обильной игры в скалу, меня очень привлекает функциональное программирование, и хоть в ActionScript, подержки оного почти нету, все же можно извращатся хоть как то.
вот сделал себе утилитку, для добавления и удаления событий: pastebin.com оптом так сказать
Что думаете? Только в критике, не надо писать — Это не ООП, это и не задумывалось, как OOP, это FP ^_^