budden писал(а):
Мне показалось, что это хорошо сделано в Tk.
вот одна из тех вещей, про которые я на удивление не знаю почти ничего. как-то всегда мимо меня проходила. может, посмотрю, спасибо.
budden писал(а):
Но да, надо завязывать с офтопиками, и вообще работать надо.
да интересная беседа же. я лично совмещаю: поработал — выпил кофе, почитал-пописал. ;-)
budden писал(а):
В лиспе родной ввод-вывод почти весь уже построен на консах. Если в форте их в языке нет, значит там нельзя построить встроенный ввод-вывод на консах. Т.е. разница всё же есть.
так в форте и встроеного ввода-вывода нет. ;-) ну, блоки — и даже они не обязательны. в большинстве форт-систем низкоуровневые i/o примитивы векторизуют, а поверх делай что хочешь.
budden писал(а):
По современным меркам Common Lisp достаточно компактный и простой язык.
вот поэтому я и не пользуюсь «современными языками». у нас с ними кардинально не совпадает понимание простоты и компактности.
budden писал(а):
Хорошо построенный дом гораздо лучше, чем груда кирпичей. Во всяком случае, для жителя дома.
так никто пользователю кирпичи и не даёт. кирпичи нужны мне, чтобы дать пользователю удобный дом.
опять таки: современное стремление иметь типовые жилые районы, в которых всё строительство заключается в том, что домики можно чуть-чуть подвигать, да иногда стены перекрасить — от меня очень далеко. мне, пожалуйста, кирпичи и цемент, остальное я уж сам.
budden писал(а):
Но в целом пусть Форт тоже будет, я от него пришёл к лиспу, т.к. меня привлекла концепция "компилирующих слов". Не знаю, куда он уразвивался с того момента, когда я о нём читал советскую книгу в начале 90-х.
да никуда особо: что там развивать-то? сделали ANS-стандарт (не самая лучшая идея, и стандарт не самый лучший, но и не ужас-ужас). периодически появляются разные прикольные идеи, которые остальные к себе утаскивают. типа забавного слова "…" (многоточие), к которому можно подцеплять цепочку вызовов. "scattered colon" называется:
Код:
: init ... ." init complete\n" ;
init
.( =================\n)
..: init ." init phase1\n" ;..
init
.( =================\n)
..: init ." init phase2\n" ;..
init
.( =================\n)
..: init ." init phase3\n" ;..
init
.( =================\n)
..: init ." init phase4\n" ;..
init
.( =================\n)
..: init ." preinit phase 1\n" <;..
init
.( =================\n)
..: init ." preinit phase 0\n" <;..
init
.( =================\n)
..: init ." init phase5\n" ;..
init
.( =================\n)
.( =================\n)
: init2 ... ." init2 complete\n" ;
init2
.( =================\n)
..: init2 ." pteinit2 phase1\n" <;..
init2
.( =================\n)
..: init2 ." init2 phase0\n" ;..
init2
.( =================\n)
..: init2 ." pteinit2 phase0\n" <;..
init2
.( =================\n)
..: init2 ." init2 phase1\n" ;..
init2
.stack
bye
с таким вот выхлопом:
Код:
init complete
=================
init phase1
init complete
=================
init phase1
init phase2
init complete
=================
init phase1
init phase2
init phase3
init complete
=================
init phase1
init phase2
init phase3
init phase4
init complete
=================
preinit phase 1
init phase1
init phase2
init phase3
init phase4
init complete
=================
preinit phase 0
preinit phase 1
init phase1
init phase2
init phase3
init phase4
init complete
=================
preinit phase 0
preinit phase 1
init phase1
init phase2
init phase3
init phase4
init phase5
init complete
=================
=================
init2 complete
=================
pteinit2 phase1
init2 complete
=================
pteinit2 phase1
init2 phase0
init2 complete
=================
pteinit2 phase0
pteinit2 phase1
init2 phase0
init2 complete
=================
pteinit2 phase0
pteinit2 phase1
init2 phase0
init2 phase1
init2 complete
stack empty
такие своеобразные хуки.
и всякое подобное.