/ / Може ли многонишкова функционална програма да бъде детерминирана? - многонишковост, функционално програмиране, детерминистично, недетерминирано

Може ли мултитъкан функционална програма да бъде детерминирана? - multithreading, функционално-програмиране, детерминистично, не-детерминистично

Прочетох, че функционалното програмиране е достаподходящ за многонишкови програми, като се има предвид парадигмите на езика за програмиране, които носи (неизменяемост, функции без странични ефекти). Също така прочетох, че многонишките програми често са недетерминирани.

даден stakx отговор на подобен (но различен) въпрос, ето въпросът ми:

Може ли многонишкова програма да бъде детерминирана, ако се кодира с функционални езици за програмиране?

Отговори:

0 за отговор № 1

Разбира се. Всяка програма може да бъде детерминирана. Например,

Thread.new do
1 + 2
end
Thread.new do
2 + 3
end

е детерминистичен, тъй като не засягавселената по какъвто и да е начин. Всичко е в начина, по който подреждате страничните ефекти. Ако нямате променливи структури, тогава е само въпросът за предсказуемото подреждане на входно-изходната и междупроцесната комуникация. Но ако питате дали всяка функционална програма е детерминистична, отговорът е не.