корни sheme, call/cc




считается что scheme был первым языком, который применил данное сомнительное решение. Однако это не совсем так, на самом деле, может кому интересно:

McDermott, and Sussman [1972] developed the Lisp-based language Conniver based on “hairy control structure” that could implement non-chronological backtracking that was more general than the chronological backtracking in Planner. However, Hewitt and others were skeptical of hairy control structure.
Pat Hayes remarked:
Their [Sussman and McDermott] solution, to give the user access to theimplementation primitives of Planner, is however, something of a retrograde step (what are Conniver's semantics?). [Hayes 1974]

Hewitt reported ...

we have found that we can do without the paraphernalia of «hairy control structure» (such as possibility lists, non-local gotos, and assignments of values to the internal variables of other procedures in CONNIVER.)... The conventions of ordinary messagepassing seem to provide a better structured, more intuitive foundation for constructing the communication systems needed for expert problem-solving modules to cooperate effectively.iv (emphasis in original)

А J operator, который общеé call/cc, появился ещё раньше.

anonymous ()

Так что тебя можно банить.

anonymous ()
Ответ на: комментарий от anonymous

Да, вот тут об этом чуть подробней:

Hairy control structure Peter Landin had introduced an even more powerful control structure using his J (for Jump) operator that could perform a nonlocal goto into the middle of a procedure invocation [Landin 1965]. In fact the J operator enabled a program to jump back into the middle of a procedure invocation even after it had already returned! Drew McDermott and Gerry Sussman called Landin's concept “Hairy Control Structure” and used it in the form of a nonlocal goto for the Conniver programming language [McDermott and Sussman 1972].

linearisation ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.