Scala “продолжения” является просто броским синтаксисом для определения и использования Функций обратного вызова?

И я подразумеваю это в том же смысле что C/Java for просто броский синтаксис для a while цикл.

Я все еще помню при первом приобретении знаний о for цикл в C, умственное усилие, которое должно было войти в понимание последовательности выполнения трех выражений управления относительно инструкции циклов. Кажется мне, тот же вид усилия должен быть применен для понимания Продолжений (в Scala, и я предполагаю, вероятно, другие языки).

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

9
задан Alex R 23 April 2010 в 18:17
поделиться

1 ответ

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

Однако преобразование всей вашей кодовой базы, вероятно, не очень практично, и полученный код трудно читать, поэтому компилятор сделает это за вас за кулисами - НАМНОГО лучше.

3
ответ дан 5 December 2019 в 01:42
поделиться
Другие вопросы по тегам:

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