Четвёртый том, наконец, вышел

image of the cover Вот буквально только что я притащил домой тираж четвёртого тома. Пользуясь случаем, выражаю безграничную признательность издательству МАКС Пресс и лично Алле Николаевне Матвеевой — эти самоотверженные люди в последний день перед всеобщим закрытием практически вырвали тираж книги из типографии, которая уже вознамерилась совсем закрыться, так и не доделав книгу.

Пошёл приходить в себя. Всё остальное — обложка, страничка, электронная версия, отчёты и планы на будущее — чуть позже.

UPD: Электронная версия книги доступна на странице, посвящённой чевёртому тому. Пока не работает ссылка на архив примеров, работы ведутся. Архив примеров выложен.

Здравствуйте,Я,

Здравствуйте,

Я, к сожалению, не программирую в среде Linux, но есть Cygwin. Попробовал откомпилировать hello.cpp по книке - ошибка компилятора.
"gcc -Wall -g hello.cpp -lfltk -o hello" не работает, работает либо: "g++ -Wall -g hello.cpp -lfltk -o hello", либо: "gcc -Wall -g hello.cpp -lfltk -llibstdc++ -o hello"

С уважением,
Владимир

admin аватар

Как я могу

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

Впрочем, кажется, до меня дошло — да, на стр. 261 допущен, как говорят, косяк. Я не знаю, что за изменённое состояние сознания у меня было, когда я этот пример вызова компилятора написал. Должно быть, конечно, не gcc, а g++ — программа-то физически та же самая, но набор библиотек по умолчанию подхватывается другой.

P.S. С cygwin'ом настоятельно рекомендую завязывать. Во-первых, под форточками есть MinGW, это решение намного лучше — получаются нативные программы для win/*, я сам этот MinGW использую, когда нужно перенести программу из *nix в win/*. Во-вторых, если так и останетесь под форточками (и даже если перейдте на Linux, но будете использовать иконочные файловые менеджеры), то от моих книжек вам никакого проку не будет.

Вопрос по материалу четырёхтомника

Уважаемый Андрей Викторович, огромное спасибо за такую простую подачу материала про указатели! Проще, наверное, некуда. Знакомым очень рекомендую Вашу книгу. Только никак не могу разобраться: что конкретно делает звёздочка в

void *malloc(int size);

Как это работает вот здесь, в заголовке функции?

admin аватар

Так же, как и везде

Есть общий принцип чтения описаний, во втором томе он описан на стр. 403-404. Начинаем с описываемого имени, в данном случае это malloc. То, что стоит справа, имеет более высокий приоритет, а там стоит список параметров; получается, что «malloc — это функция, принимающая на вход int и возвращающая...» Скобки мы прочитали, упёрлись в точку с запятой, так что теперь остаётся идти налево. Звёздочка читается как «указатель на», дальше стоит void, на этом всё кончается. Итого:

malloc — это функция, принимающая на вход int и возвращающая указатель на void.

Конечно, поскольку указатель — это такая переменная и формально указатель вообще нельзя вернуть из функции, правильнее будет сказать "возвращающая адрес памяти типа void", т.е. нетипизированной памяти — просто адрес, без привязанной к нему информации о типе.

Снимаю шляпу

Ваш финишировавший проект - как глоток чистого свободного воздуха средь коммерческого смрада. Удачи Вам во всех Ваших начинаниях! Да минует Вас вирус коронный :)

Здравствуйте,А

Здравствуйте,

А у вас планируется 5 том? Ну, к примеру, про декларативное программирование

С уважением,
Владммир

admin аватар

Пятый не

Пятый не планируется. У меня была задумка на пятый том -- теория алгоритмов и вычислимости, теория вычислительной сложности, формальные грамматики, практическая алгоритмистика (включая всяческие сортировки) и прочее. Судя по тому, что четвёртый том я еле-еле написал за 2.5 года, на пятый мне может не хватить оставшейся продолжительности жизни, так что писать я его не буду.

Декларативное программирование рассмотрено в четвёртом, см. главу 11.4.

Кнут же пишет...

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

admin аватар

Ну, если бы у

Ну, если бы у меня была хотя бы десятая часть источников дохода, имеющихся у Кнута, то я бы тоже только писал и больше ничем не знанимался :-) Мне и в области философии есть что делать, а ещё есть изрядное количество программ, которые хотелось бы написать. Но увы -- приходится, кроме прочего, ещё и зарабатывать деньги.

Chicken Scheme

А куда можно писать комментарии по четвёртому тому? На его странице такой возможности не предусмотрено.

У меня не работает пример с Chicken Scheme:

$ cat echo.scm
(map (lambda (s)
       (display s)
       (display " "))
     (command-line-arguments))
(newline)
$ csi -s echo.scm

Error: unbound variable: command-line-arguments

        Call history:

                  (##core#begin (##core#require expand chicken.syntax#))
                  (##core#require expand chicken.syntax#)
                  (##sys#load-library (##core#quote expand))
                  (##core#quote expand)
            (##sys#load-library (##core#quote library))
            (##sys#load-library (##core#quote library))
            (##sys#load-library (##core#quote expand))
                  (map (lambda (s) (display s) (display " ")) (command-line-arguments))
                  (lambda (s) (display s) (display " "))
                  (##core#lambda (s) (display s) (display " "))
                  (##core#begin (display s) (display " "))
                  (display s)
                  (display " ")
                  (command-line-arguments)
            (map (lambda (s) (display s) (display " ")) (command-line-arguments))
            (command-line-arguments)      <--

admin аватар

Комментарии на

Комментарии на странице 4 тома открыл, спасибо за сообщение.

По поводу csi -- версия какая? Если пятая, добавьте вот такую строчку:

(import (chicken process-context))

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

Да, пятая.

Да, пятая. Добавил импорт -- заработало, спасибо.

можно воспользоваться флагом -static, чтобы csc создал полностью автономный исполняемый файл, не зависящий ни от каких библиотек.

А четвёртом Chicken'е этот флаг избавляет от всех зависимостей? Потому что у меня, в пятом, зависимость от системной libc остаётся.

Хотя, может быть это уже и не от самого Chicken с его версиями зависит, а от нижележащего сишного компилера/линкера, которым он код передаёт.

admin аватар

У меня с

У меня с четвёртой версией получался честный статический бинарник, то есть ни от чего не зависящий. Пятой версии сейчас под рукой нет, не могу попробовать.

От компилятора Си это зависеть не должно вроде бы.

Спасибо, Мастер!

Спасибо, Мастер!

admin аватар

Уж сколько раз

что дальше

что дальше ?
есть какие то планы ?

admin аватар

Конечно, есть

Конечно, есть планы. Будет отдельная новость на эту тему. Дайте выдохнуть :-)

Книгу о LaTeX бы

Книгу о LaTeX бы перевыпустить осовремененную...
Так сказать не только для дипломной, но и для других полезных офисных применений.

Архив с

Архив с примерами — «Страница не найдена».

admin аватар

Дык это,

Дык это, специально же в тексте новости (где UPD) написал, что оно пока не работает. Там надо часик поразгребать бардак, который накопился за 2.5 года, нету у меня прямо сейчас этого часика, уж простите. Надеюсь, завтра (в воскресенье) всё будет.

Отлично! Мои

Отлично! Мои поздравления!

Большое

Большое спасибо Вам и издательству!
Здоровья и спокойствия всем нам.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <ins> <del> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <pre>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Проверка на бота
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.