LINUX.ORG.RU

SICP

 


0

6

Начал читать сабж. Хм, оказывается, нотация Lisp является математической. Мой мир не будет прежним. А еще упрощенные модели тоже предлагается тоже писать на Lisp, видимо даже аналитикам.

Ответ на: комментарий от hateyoufeel

де Суссман объясняет зачем они выкинули лишп и почему пердон лучше.

потому что когда они разрабатывали изначальный курс по SICP и книжку, в ходу были инженеры.

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

потом парадигма изменилась и изучение схем по деталькам стало не модным. сами детальки стали более сложными.

вот например Вернон Виндж написал «Конец радуг» про сингулярность, носимую электронику и прочие нанотехнологии.

Роберт Гу

Так много технологий, так мало таланта

Не предназначено для обслуживания пользователем

вот сейчас всё то же самое (а книжка была написана Винджем когда там, в 2006?)

все эти детальки скатываются в ч0рные ящики которые ХЗ как устроены.

но народу как-то пофиг – он клепает ардуйню в кубик иде и без иде вообче ничего не могут.

и есчо считают это системным программированием.

факт в том – что они по другому и не могут, никак, вот совсем, ну вообще.

не могёт условный современный школьник испорченный питоном и жаваскриптом осилить лисп или пролог, ну вообще.

ведь там кубиков и квадратиков таких нет, и вообще детальки другие.

ну например: программисты воспитанные дельфями ищут где скачать готовые компоненты и мало кто их в состоянии написать самостоятельно, совсем с нуля.

Не предназначено для обслуживания пользователем

воспитанные питоном не могут вообще ничего, только питон. и тот с трудом.

особенно, если не смогут нагуглить или нужно брать и пробовать и как-то сравнивать, оценивать. или если готовых решений нет и нужно крепко подумать.

мало кто вообще захочет это делать.

вот Суссман и сказал что изменилась концепция, парадигма.

с деталек и констуирования на ч0рные ящики и сложные кубики и квадратики.

Так много технологий, так мало таланта

SICP изначальный на питон когда там переписали?

1st ed изначальный в 1984.

2ed скатился в питон в 1996 – ещё до того как это стало модным. в жаваскрипт в 2022.

sic transit gloria mundi.

осталось только на С++ какой-то переписать, прости господи.

anonymous
()

SICP в форматах PDF, Texinfo: sicp-pdf

про метациклический интерпретатор – глава 4.

стр. 494 (522/883pp) Figure 4.1 – Eval-Apply нарисованы как инь Apply и ян Eval.

LFE, lisp flavoured erlang версия SICP: cnbbooks.github.io/lfe-sicp

Ъ content advisory warning: если ты лох и неосилятор и тебе не стыдно – см. спойлеры к SICP.

!Ъ: ну и кто ты после этого?

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

Texinfo разметка, кстати, выглядит довольно человекочитаемой. почти как asciidoc: sicp.texi

LaTeX исходник собирается из неё какой-то магией на Perl: texi-to-latex.pl

вот что значит – средство разметки проектировали лисперы.

skribe – предок wiki:Texinfo, варианты которого были ещё на лисп машинах:

texinfo/6.7/History:

Beginnings
In the 1970’s at CMU, Brian Reid developed a program and format named Scribe to mark up documents for printing. It used the @ character to introduce commands, as Texinfo does. Much more consequentially, it strove to describe document contents rather than formatting, an idea wholeheartedly adopted by Texinfo.

Meanwhile, people at MIT developed another, not too dissimilar format called Bolio. This then was converted to using TeX as its typesetting language: BoTeX. The earliest BoTeX version seems to have been 0.02 on October 31, 1984.

BoTeX could only be used as a markup language for documents to be printed, not for online documents. Richard Stallman (RMS) worked on both Bolio and BoTeX. He also developed a nifty on-line help format called Info, and then combined BoTeX and Info to create Texinfo, a mark up language for text that is intended to be read both online and as printed hard copy.

Moving forward, the original translator to create Info was written (primarily by RMS and Bob Chassell) in Emacs Lisp, namely the texinfo-format-buffer and other functions. In the early 1990s, Brian Fox reimplemented the conversion program in C, now called makeinfo.

ну надо же – сколько лет прошло а опять TeX и какая-то магия на Perl.

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

not too dissimilar format called Bolio

Emacs для детишек :

The users at the AI Lab soon accumulated a large collection of custom macros. In 1976, Guy Steele took on the project of unifying the diverse macro sets into a single set. This task was completed by Stallman, who also wrote facilities for extending and documenting the new macro set. The resulting system was called EMACS, which stood for "Editor MACroS". According to Stallman, he picked the name Emacs "because <E> was not in use as an abbreviation on ITS at the time." It has also been pointed out that "Emack & Bolio's" was the name of a popular ice cream store in Boston, within walking distance of MIT. The text-formatting program used on ITS was called BOLIO. Stallman, however, denies that the ice cream was at all a factor in the naming of the editor, as he generally did not go to that store and had not liked their ice cream the one time he did try it.

вот оно то мороженное Emack & Bolio’s

этот – не тот scribe, а кого надо scribe. и даже не проприетарный sprint с похожей идеологией.

и опять же, не wiki:skribiloj который guile:skribilo:manual и не Scribe из Racket. или там Pollen из TheBeautifulRacket.

вот что с проприетарастами open source животворящий делает:

Time-bomb
Reid agreed to insert a set of time-dependent functions (called "time bombs") that would deactivate freely copied versions of the program after a 90-day expiration date. To avoid deactivation, users paid the software company, which then issued a code that defused the internal time-bomb feature.

Richard Stallman saw this as a betrayal of the programmer ethos. Instead of honoring the notion of "share-and-share alike", Reid had inserted a way for companies to compel programmers to pay for information access.[9]

Stallman's Texinfo is "loosely based on Brian Reid's Scribe and other formatting languages of the time"[citation needed].[10]
anonymous
()
Ответ на: комментарий от anonymous

про метациклический интерпретатор – глава 4.

стр. 494 (522/883pp) Figure 4.1 – Eval-Apply нарисованы как инь Apply и ян Eval.

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

Но, как известно, когда ян достигает расцвета, появляется инь – женское начало, соответствующее неупорядоченности, иррациональности, неопределенности, неформализуемости.

можно медитировать на вот эту мандалу до полнейшего просветления.

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

исходники skribe и его ftp сейчас хрен найдёшь.

есть менее православная реализация той же идеи, но на Common Lisp вместо схемы : exscribe

в репозитории на gitlab последнее обновление 3 года назад, в github репозитории fare/exscribe – года 4 назад.

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

стоило бы знать, что «Двенадцать стульев» написали Ильф и Петров

Мне знакома эта версия, но она слишком абсурдная, чтобы принимать её всерьёз

Вот это манёвр, моё увожение. Учитесь, салаги, пока дедушка жыв %)

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

Рыночек решает.

Довольно затруднительно паять процессор из отдельных транзисторов. Ещё труднее найти в процессоре сгоревший транзистор и поменять его. Так мы приходим к крупноблочной сборке.

В качестве первого ЯП питон идеален. Надо просто понимать, что у каждого ЯП есть своя ниша.

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

программисты воспитанные дельфями ищут где скачать готовые компоненты

Аж олдскулы свело.


Как программисту обнаружить льва в пустыне и посадить его в клетку⁠⁠

Пpогpаммист на Паскале:

– Пpосматpивает пyстыню полным пеpебоpом. Обнаpyжив льва, стpоит вокpyг него клеткy.

Пpодвинyтый пpогpаммист на Паскале:

– Соpтиpyет пyстыню по возpастанию, после чего ищет льва двоичным поиском и стpоит вокpyг него клеткy. Если в пpоцессе стpоительства лев yходит, бpосает pаботy с кpиком «Range Check Error».

Пpогpаммист на Си:

– Ищет в пyстыне камень и помещает его в клеткy. Пpисваивает камню значение «лев».

Пpодвинyтый пpогpаммист на Си:

– Пpисвавает пyстыне значение «клетка».

Пpогpаммист на Си++:

– Пpоектиpyет клеткy таким обpазом, чтобы лев был её составной частью. Пpи инициализации клетки лев автоматически генеpиpyется внyтpи.

Пpогpаммист на Аде:

– Говоpит, что лев и клетка — это объекты pазных типов, и нечего моpочить емy головy некоppектными задачами.

Пpогpаммист на Дельфи:

– Пишет во все конфеpенции: «Hаpод, где взять компонент, котоpый ищет в пyстыне льва и помещает его в клеткy?»

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

Программист на Питон:

  • Пишет нужную программу за три секунды, но пока она выполняется, лев умирает от старости.

Программист на ассемблере:

  • Умирает от старости, пока пишет нужную программу.

Программист на Раст:

  • Сидит в клетке.
anonymous
()
Ответ на: комментарий от AntonI

Вы меня этим аргументом срезать хотите? Пустое это. Лучше почитайте любое другое произведение Ильфа и Петрова, которые они действительно написали. Вот, ту же «Одноэтажную Америку» например.

P.S. Ещё «Алмазный мой венец» рекомендую. После этого вопросы: „Как Булгаков мог знать кого-то, кого знали Ильф с Петровым“, должны сняться сами собой. Ну а если нет, то я уж не в силах помочь.

ugoday ★★★★★
()
Последнее исправление: ugoday (всего исправлений: 1)
Ответ на: комментарий от ugoday

Читал и то и то. Вы не ответили.

Как бы мои знакомые проф.филологи, всю жизнь изучавшие Булгакова, версию о том что он написал 12 стульев не разделяют.

AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от ugoday

Лучше почитайте любое другое произведение

Чё за клоунаду вы тут устроили? Где атрибутивные метрики? Где коэффициенты авторских инвариантов, я вас спрашиваю?

LamerOk ★★★★★
()
Ответ на: удаленный комментарий

К слову, раз уж заговорили о Стругацких, рекомендую прочесть Факап. Хотя и фанфик формально, но он добавляет глубины и жизненности, внутренней интриги и настоящести какой-то миру полдня, который у автора столь же глубок и осмысленнен, как и кумачёвый плакат «Мир! Труд! Май!» в школьном актовом зале.

ugoday ★★★★★
()
Ответ на: комментарий от LamerOk

Хозяин-барин. Если вы любите Стругацких и конспирологию, вам понравится, потому что это конспирология про Стругацких. А если не любите — тоже понравится, потому как это постмодернистская деконструкция Стругацких и конспирологии.

Я сам, честно говоря, в последнее время разлюбил фантастику совсем, но эта книга мне понравилась (хотя «Золотой ключик» наголову лучше, конечно).

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

Если вы любите Стругацких

Я их любил, когда был тинейджером.

Но в данном случае АиБ не причём. Меня отталкивает новояз - «комп» и прочий просторечно-интернетный жаргон. Для щитпостинга в жж и прочего лора такой формат приемлем. Для художественного текста - решительно нет.

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

у сотни зайцев есть неплохая статья про Lisp, и например, про LispKit , и про SECD машину.

по ссылкам оттуда про метациклический

A Lisp through the Looking Glass link PDF

This thesis presents a new architecture for programming language interpreters, in which interpreters are not only first-class values, but are also arranged in a tower of meta-circular interpretation which is accessible reflectively—so that a program may modify elements of the meta-circular tower under which it runs, and thus cause changes in the manner of its own interpretation.

To facilitate such modification, we develop a representation for interpreters that splits each interpreter into a language (a collection of independently implemented constructs) and an evaluator (connecting the constructs together).

To implement such a mutable infinite meta-circular interpreter, we need another interpreter outside the tower, the meta-evaluator. We present this, along with a systematic way of linking it to the meta-circular tower. We show that a further form of meta-circularity may be introduced by bringing the meta-evaluator into the reflectively accessible part of the system; and that this may be repeated without limit, using the same techniques.

These techniques for meta-interpretation are then shown to be similar to the ``language and evaluator'' model for interpretation, and a concise version of the system is presented that uses common code for many of these functions.

Provision for reflective and mixed language facilities pervade the infrastructure of the system. We show that despite all this power, it is possible to implement such a system efficiently—well within an order of magnitude of the performance of a single-language non-reflective system—and we show how a wide range of languages may be implemented on this infrastructure, which also allows transparent mixed-language programming.

кстати, классическое определение лиспа от Джона МакКарти из recursive.pdf тоже можно представить в таком виде.

как башню метаязыков – COND-выражения; <…>; Lambda/Label выражения; S-выражения; M-выражения;

в <…> здесь остальные части внутреннего и внешнего метациклического интерпретатора, окружение: evlis, evcon, pairlis, apply, eval

в этом смысле довольно компактны и самодостаточны такие реализации как 3-lisp, SINK kernel, klisp, lispkit, и вот это вот лиспозазеркалье

впрочем, sectorlisp от justine.lol тоже простой и наглядный.

манга сикп.жпг

настоящая манга про лисп:

マンガで分かるLisp(Manga Guide to Lisp), ня!

anonymous
()