Функциональные языки по сути более parallelizable, чем их OO или обязательные кузены?

Спасибо, Удит, Мишу & amp; Команда, Ваш ответ дал мне направление. Ниже приведено решение, которое я применил -

Datetimepicker не загружался правильно в модальном всплывающем окне, которое появляется как отдельное окно, поэтому я добавил следующую функцию загрузки jquery, чтобы она работала.

$ (function () {$ ('# datetimepicker8'). Datetimepicker ();});

Большое спасибо.

6
задан patros 11 March 2009 в 02:51
поделиться

2 ответа

Это главным образом о побочных эффектах. Если компилятор знает, что некоторые части кода не имеют никаких побочных эффектов, он может оптимизировать на основе структуры кода для выполнения некоторых из тех параллельно.

Рассмотрите linq на C# / который полуфункционален:

var someValues = from c in someArray
                where // some  comparisson with no side effects
                select c;

Вы указываете намерение того, что Вы хотите сделать, если бы компилятор знал, что каждая часть выражения не имеет никаких побочных эффектов, то это могло бы безопасно отвести различные роли массива для обработки на различных ядрах. На самом деле существует.AsParalell, который будет прибывать в параллель linq (plinq), который включит просто это. Проблема прибывает, в котором она не сможет осуществить бит побочных эффектов (находиться на языке/платформе, который не имеет никакой поддержки ее), который может стать действительно ужасным, если разработчики не знают. Из-за этого они сделали это явным, но Вы видите те доставляющие неприятности по пути.

6
ответ дан 8 December 2019 в 16:10
поделиться

Функциональные языки более parallelizable, чем императив и языки OO из-за чистых функций. Однако Вы абсолютно правы, если у Вас есть эти виды зависимостей по данным, Вы не можете параллелизировать его. Основное значение функционального программирования делает параллелизм, который присутствует в Вашем коде, легче определить и рассуждать о том, потому что только зависимости по данным, не совместно использованное изменяемое состояние, могут помешать.

На самом деле, потому что самые простые смертные программисты испытывают затруднения при работе на чисто функциональных языках, и потому что Драконовская политика завершенного запрещения изменяемого состояния может быть неэффективной, был некоторый шум об идее позволить отдельным телам функции быть записанными обязательно, но запретить побочные эффекты через функции. Другими словами, все функции, которые должны быть параллелизированы, должны были бы быть чистыми. Затем у Вас могло быть изменяемое состояние для локальных переменных для создания кода легче записать и более эффективный, но все еще позволить безопасное, легкое автоматическое распараллеливание вызовов к этим чистым функциям. Это исследуется в, например, 2,0 ответвления языка D.

9
ответ дан 8 December 2019 в 16:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: