Re[11]: Являются ли функции в erlang pure?
От: thesz Россия http://thesz.livejournal.com
Дата: 23.01.09 22:59
Оценка:
T>>Если серьёзно, то твоё запрещение и реализуется через синтаксическое ограничение.
BZ>в конечном счёте ты прав, но как бы никакого нового синтаксиса не нужно

Да ты что!

Ещё скажи, что синтаксические правила не поменялись.

Было
function ::= proc_func_header '::' type_expr 'begin' statement 'end' ';'

стало
function ::= proc_func_header '::' type_expr 'begin' func_statement 'end' ';'

где func_statement, в отличии от обычного statement, не содержит вызова процедуры.

Это ли не новый синтаксис?
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[12]: Являются ли функции в erlang pure?
От: thesz Россия http://thesz.livejournal.com
Дата: 23.01.09 23:02
Оценка:
T>>Этот?
К>Т. е. изобрели какой-то ключик, отключающий проверку типов в хаскеле до рантайма?
К>Если нет, то к чему твоя реплика, ибо речь шла о динамической типизации?

Вообще, я дурачусь.

Если же быть чуть более серьёзным, то Хаскель — это единственный широко распространённый язык, где есть синтаксис для ввода-вывода.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[11]: proof of concept (очередной игрушечный интерпретатор
От: thesz Россия http://thesz.livejournal.com
Дата: 23.01.09 23:03
Оценка:
BZ>вывод типов примерно так и выглядит. тот же q-lang — скриптовый язык, но основанный на inference вместо динамики. да и сам haskell хорош в качестве скриптового языка

ТЫ кого-то с кем-то путаешь.

q-lang не содержит никакого inference. Или поделись ссылкой, о которой я не знаю.

Вывод типов так выглядит в Хелиуме, это достаточно накладно, выводить типы синтаксически.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[12]: proof of concept (очередной игрушечный интерпретатор
От: BulatZiganshin  
Дата: 24.01.09 17:21
Оценка:
Здравствуйте, thesz, Вы писали:

BZ>>вывод типов примерно так и выглядит. тот же q-lang — скриптовый язык, но основанный на inference вместо динамики. да и сам haskell хорош в качестве скриптового языка


T>ТЫ кого-то с кем-то путаешь.


ага. это была kaya. вообще: http://sourceforge.net/search/?type_of_search=soft&words=type+inference
Люди, я люблю вас! Будьте бдительны!!!
Re: Являются ли функции в erlang pure?
От: Sphinkx  
Дата: 04.02.09 07:54
Оценка:
DAS>А как же Pid ! {} и receive в Erlang? Правильно ли я понимаю, что это как
DAS>раз и есть тот побочный эффект, про который пишет Влад?

Да, так и есть — функция, отправляющая или принимающая сообщение, является "грязной". Об этом пишет Joe Armstrong в Armstrong thesis 2003 (pdf), глава 8.3:

To simplify matters I say that a function is dirty if it sends or receives a message or if it calls one of the following Erlang BIFs: apply, cancel_timer, check_process_code, delete_module, demonitor, disconnect_node, erase, group_leader, halt, link, load_module, monitor_node, open_port, port_close, port_command, port_control, process_flag, processes, purge_module, put, register, registered, resume_process, send_nosuspend, spawn, spawn_link, spawn_opt, suspend_process, system_flag, trace, trace_info, trace_pattern, unlink, unregister, yield.

Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.