Вложенные истории
Apr. 13th, 2010 12:24 pmВчера интересно поговорили с
gruppa_riska про завершённые и незавершённые разговоры и их сходство с закрытыми-незакрытыми скобками в формулах, и я подумал, что вот есть же люди, которые в процессе рассказа какой-то истории с несколькими под-историями, умудряются помнить, сколько раз они открыли вложенную тему - и грамотно потом их одну за одной закрывают, и разговор похож на аккуратно составленное алгебраическое выражение или на программу на каком-то приличном до скуки языке, типа паскаля - ну вот что-то в этом духе:
procedure story()
begin
давно хотел тебе рассказать;
на прошлой неделе еду в метро;
вижу - рядом со мной стоит броская такая дама;
точь-в-точь моя учительница пения;
ой, я тебе не рассказывал про учительницу пения;
procedure music_teacher()
begin
я в четвёртом классе был;
у нас начала вести музыку новая училка;
очень эффектная такая была девица;
прямо посреди четверти пришла в школу;
мы с ней разучивали под фоно "Взвейтесь кострами";
и она учила нас нотной грамоте;
которая никогда в жизни мне не пригодилась;
кроме, пожалуй одного случая;
procedure strange_case()
begin
...
//тут странная история о том, как внезапно
//нотная грамота может пригодиться
//в обычной жизни человека от музыки далёкого
...
end;
потом она ушла из школы;
так же внезапно, как появилась;
и никто из класса её потом не видел
  end;
  и вот сейчас смотрю - она, не она?
  всё-таки тридцать лет прошло, мало ли;
  и вот пока я думал - спросить, не спросить;
  поезд останавливается, и она мне говорит - ;
  I'm sorry, can you help me? - и на карте что-то показывает;
  ну, туристка какая-то, конечно;
  да и как, в самом деле, можно так сохраниться за тридцать лет;
  придёт же такое в голову;
  помог, да, чего бы не помочь
end.
Но в жизни почему-то гораздо чаще встречаются рассказчики, которые совершенно не следят за структурой и в живом разговоре скачут с темы на тему, а ты успевай следи, выглядит это примерно вот так, мне кажется:
10 еду в метро
20 смотрю рядом лицо знакомое
30 думаю на кого похожа
40 понимаю, что на мою учительницу музыки: goto 110
50 думаю - она, не она
60 и пока смотрел - поезд останавливается
70 и она меня по-английски спрашивает
80 как ей добраться до арбатской - на карте показывает
90 прикинь? ну, не она, конечно
100 end
110 я же не рассказывал - у нас такая учительница музыки была
120 в четвёртом классе, как сейчас помню, хорошее было время: gosub 1000
130 так вот, молодая такая, эффектная, нам всем очень нравилась
140 играла на фоно, мы с ней разучивали "Взвейтесь, Кострами": gosub 1000
150 и ещё она нас учила нотной грамоте зачем-то
160 хотя не то чтоб зря - однажды мне это даже пригодилось: goto 400
170 ну а потом как-то тоже посреди четверти
180 она раз - и куда-то исчезла вообще из школы
190 ну там говорили - уехать срочно пришлось, мы как-то не вникали
200 и потом никто из класса не видел её вообще
210 goto 50
400 rem тут странная и длинная история о том
410 rem как человеку от музыки далёкому
420 rem зачем-то пригодилась нотная грамота
430 gosub 1000
440 on int(rnd(-1)*3)+1 goto 170, 140, 100
1000 в прежние-то времена всё было совсем не так, как теперь! : return
Причём зачастую все эти цифирки в операторах перехода ты расставляешь уже сам задним числом :)
Собственно, я это пишу даже не столько чтоб пожаловаться на вторых, сколько чтоб выразить восхищение первыми - у меня таких знакомых рассказчиков раз-два и обчёлся, но зато эти - умудряются помнить про все открытые конструкции сколько бы их ни было, и ты знаешь, что они обязательно будут закрыты, причём без всяких непредсказуемых параметров.
Сложней всего с людьми в возрасте - я понимаю, что им хочется рассказать больше, я уже сам почти таким стал, но цепочек из-за этого возникает чудовищное количество, корректно закрывается дай бог половина, а завершению разговора может послужить лишь что-то совсем форс-мажорное, вроде внезапного сна. Что с этим делать - не знаю, просто как-то иметь в виду, наверно, хотя бы при построении собственного монолога :)
procedure story()
begin
давно хотел тебе рассказать;
на прошлой неделе еду в метро;
вижу - рядом со мной стоит броская такая дама;
точь-в-точь моя учительница пения;
ой, я тебе не рассказывал про учительницу пения;
procedure music_teacher()
begin
я в четвёртом классе был;
у нас начала вести музыку новая училка;
очень эффектная такая была девица;
прямо посреди четверти пришла в школу;
мы с ней разучивали под фоно "Взвейтесь кострами";
и она учила нас нотной грамоте;
которая никогда в жизни мне не пригодилась;
кроме, пожалуй одного случая;
procedure strange_case()
begin
...
//тут странная история о том, как внезапно
//нотная грамота может пригодиться
//в обычной жизни человека от музыки далёкого
...
end;
потом она ушла из школы;
так же внезапно, как появилась;
и никто из класса её потом не видел
  end;
  и вот сейчас смотрю - она, не она?
  всё-таки тридцать лет прошло, мало ли;
  и вот пока я думал - спросить, не спросить;
  поезд останавливается, и она мне говорит - ;
  I'm sorry, can you help me? - и на карте что-то показывает;
  ну, туристка какая-то, конечно;
  да и как, в самом деле, можно так сохраниться за тридцать лет;
  придёт же такое в голову;
  помог, да, чего бы не помочь
end.
Но в жизни почему-то гораздо чаще встречаются рассказчики, которые совершенно не следят за структурой и в живом разговоре скачут с темы на тему, а ты успевай следи, выглядит это примерно вот так, мне кажется:
10 еду в метро
20 смотрю рядом лицо знакомое
30 думаю на кого похожа
40 понимаю, что на мою учительницу музыки: goto 110
50 думаю - она, не она
60 и пока смотрел - поезд останавливается
70 и она меня по-английски спрашивает
80 как ей добраться до арбатской - на карте показывает
90 прикинь? ну, не она, конечно
100 end
110 я же не рассказывал - у нас такая учительница музыки была
120 в четвёртом классе, как сейчас помню, хорошее было время: gosub 1000
130 так вот, молодая такая, эффектная, нам всем очень нравилась
140 играла на фоно, мы с ней разучивали "Взвейтесь, Кострами": gosub 1000
150 и ещё она нас учила нотной грамоте зачем-то
160 хотя не то чтоб зря - однажды мне это даже пригодилось: goto 400
170 ну а потом как-то тоже посреди четверти
180 она раз - и куда-то исчезла вообще из школы
190 ну там говорили - уехать срочно пришлось, мы как-то не вникали
200 и потом никто из класса не видел её вообще
210 goto 50
400 rem тут странная и длинная история о том
410 rem как человеку от музыки далёкому
420 rem зачем-то пригодилась нотная грамота
430 gosub 1000
440 on int(rnd(-1)*3)+1 goto 170, 140, 100
1000 в прежние-то времена всё было совсем не так, как теперь! : return
Причём зачастую все эти цифирки в операторах перехода ты расставляешь уже сам задним числом :)
Собственно, я это пишу даже не столько чтоб пожаловаться на вторых, сколько чтоб выразить восхищение первыми - у меня таких знакомых рассказчиков раз-два и обчёлся, но зато эти - умудряются помнить про все открытые конструкции сколько бы их ни было, и ты знаешь, что они обязательно будут закрыты, причём без всяких непредсказуемых параметров.
Сложней всего с людьми в возрасте - я понимаю, что им хочется рассказать больше, я уже сам почти таким стал, но цепочек из-за этого возникает чудовищное количество, корректно закрывается дай бог половина, а завершению разговора может послужить лишь что-то совсем форс-мажорное, вроде внезапного сна. Что с этим делать - не знаю, просто как-то иметь в виду, наверно, хотя бы при построении собственного монолога :)