Этого треда уже нет.
Это копия, сохраненная 28 января 2019 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
сикп.jpg64 Кб, 600x400
SICP тред #4 /sicp/ 1271806 В конец треда | Веб
Продолжаем обсуждение лучшей книги всех времен и народов, а так же одноименных лекций. Приглашаются сюда как новички, ломающие над ней голову, так и опытные ребята, прошедшие ее всю (или большую ее часть).

Где скачать SICP?
На русском: http://newstar.rinet.ru/~goga/sicp/sicp.pdf
ориджинал: http://web.mit.edu/alexmv/6.037/sicp.pdf
https://github.com/sarabander/sicp-pdf/raw/master/sicp.pdf

Где я могу писать свой код, для выполнения заданий?
Онлайн редактор, с поддержкой Scheme: https://repl.it/languages/scheme
IDE для racket подобных языков(но есть и поддержка Scheme, но её нужно включить) - https://racket-lang.org/

Где посмотреть ответы на задачи?
http://community.schemewiki.org/?SICP-Solutions
https://github.com/qiao/sicp-solutions
https://wizardbook.wordpress.com/solutions-index/
Где посмотреть видео про книгу?
https://www.youtube.com/watch?v=a0YrCABCOEY
2 1271807
Так же полезная информация.
Где я ещё могу пообсуждать любимый SICP, кроме двача?
https://www.reddit.com/r/compsci/
https://www.reddit.com/r/learnprogramming

Полезные ресурсы:
https://teachyourselfcs.com/
https://github.com/ossu/computer-science
https://sicp.neocities.org/

Книжки по ФП
https://www.dropbox.com/sh/ugtfwgfilgr0ebu/AABVDeYpTvcqcg22XZnYT8Eca?dl=0

Заодно еще пара ссылок (на онлайн-версию, видосы и сикп на кложе):
clj: http://www.sicpdistilled.com/
1986: https://www.youtube.com/playlist?list=PL8FE88AA54363BC46
2004: https://www.youtube.com/playlist?list=PL7BcsI5ueSNFPCEisbaoQ0kXIDX9rR5FF
harvey: https://archive.org/details/ucberkeley-webcast-PL3E89002AA9B9879E?sort=titleSorter
html: http://sarabander.github.io/sicp/
Для изучения языка-схемы порекомендую https://www.scheme.com/tspl4/
Слоником в итт называют книгу The little schemer (но мне он не зашел из-за слишком своеобразной подачи материала)
3 1271809
https://2ch.hk/pr/res/1247878.html (М)
Предыдущий итт проебался.
4 1271812
Подписался на тренд. Опять аниме на оп-пикче ёбт спасибо что хоть не пони
5 1271816
>>271812
Конечно аниме, а ты что хотел? Пони не нашел, к сожалению.
6 1271821
>>271812
На пикче не аниме.
7 1271827
>>271821
Мамаша твоя не аниме.
8 1271831
>>271806 (OP)
Понятен посыл. Ведь аниме для детей.
9 1271876
>>271831
в каждой мелочи видишь упрек и оскорбления? тяжело тебе по жизни, наверное.
10 1272060
>>271806 (OP)
Перекатил оп прошлого треда? Как успехи?

Бля, до сих пор не понимаю, откуда вы все эти охуенные картинки берете, лол
12 1272085
>>272060
Да, он самый перекатил. А я тогда уперся, что с базами не смог разобраться, так хуй и положил. Но я все советы и разжевывания сохранил себе в документ, думаю разберусь. А пока не до обучения, так что в этом плане нихуя не делаю. Но не забросил в целом, просто некогда.
>>272078
Ну я в яндексе просто написал "sicp аниме", мне и выдало несколько вариантов. Кстати в прошлый раз в другом поисковике похожее вбивал и картинки другие были, так что думаю треда до 30 там пикч точно хватит разнообразных, лол.
13 1272101
>>272060
Решил я погуглить Картинку с прошлого треда, начал с Гугла, поиск по картинкам, вставляю ссылку на картинку, жму "поиск", оно мне выдаёт Изображение удалено либо доступ к нему ограничен.
Бля думаю какого хуя. Хуй с ним, пробую ещё и нихуя не опять пишет что изображение удалено. Решил поискать в Яндексе, по картинкам, и оно мне всё нашло, откуда эта картинка.
Ёбаный гугл.
14 1272112
>>272078

> boyEstrogen


Хрюкнул.
15 1272140
>>272101
цензура
16 1272167
Малость подзавяз на задачах с языком описания изображений. Какого хуя в книге не приводятся конкретные примеры с использованием графической библиотеки? Как я тогда могу быть уверенным в правильности решения, если мне не на чем проверить задачу? Короче, нагуглил графические функции для mit-scheme, но почему нельзя было это вставить в книгу?
17 1272240
>>272167
Ты дальше ещё сильнее охуеешь с кода, который "не вставлен в книгу". Возьми вот эту ссылку https://mitpress.mit.edu/sites/default/files/sicp/code/index.html , она тебе понадобится.
18 1272538
>>272078
Бля, спасибо, долгих лет твоей матери, брат!

>>272085
Ну ты смотри, прям на очень долго не забивай, хотя бы пару задачек в неделю решай, чтобы не заржавело.

>Ну я в яндексе просто написал "sicp аниме"


Лол, и вправду. Как все оказалось просто.
19 1274392
Какой уровень математики нужен для этой книги? что стоит почитать по математики перед sicp ?
20 1274616
>>274392
Интегралы
image.jpeg571 Кб, 1697x773
21 1274717
Аноны, ни как не могу понять почему так? Пожалуйста объясните.
22 1274755
>>274392
Школьная математика за 10-11 класс по сути.

>>274717
О, свежая кровь, добро пожаловать :3 Ну смотри, допустим у тебя 10 рублей надо разменять монетами по 1, 2 и 5 рублей. Просто возьми и распиши на листке все возможные варианты. То есть это будет: все способы разменять монетой в 1 рубль, в 2, в 5, в 1 и 2, в 1 и 5, в 2 и 5 - и все это просуммировать. Теперь разделим все варианты на две группы: с использованием 5-рублевой монеты и без. То есть общее число способов - это сумма числа способов а) без 5-рублевой монеты и б) с ней довольно очевидно. Это - первое подчеркнутое предложение с твоего пика. Теперь второе. Если мы используем 5-рублевую монету, то мы ее должны употребить хотя бы один раз. Но тогда у нас получается, что 10 рублей мы размениваем 5-рублевой монетой, и у нас остается еще 5 рублей. И эти оставшиеся 5 рублей мы можем разменять еще сколькими-то способами, и каждый такой способ соответствует способы размена всех 10 рублей, если к нему добавить 5-рублевую монету. То есть допустим мы размениваем 5 рублей как 2+2+1, тогда 10 рублей - это 5+(2+2+1). И так далее, для каждого способа разменять 5 рублей у нас получается способ разменять 10 рублей: 5+(...). А если у нас этой первой 5-ки нет, то это значит, что мы вообще не используем 5-ки - а число способов разменять сумму без учета монет первого типа (то есть 5-рублевых) мы уже посчитали ранее. Makes sense?
23 1274758
>>274717
Поддвачну вопрос. Сам дорешал сикп почти до конца, остались последние два задания самые ебучие, но вот монеты эти сраные никогда не понимал. Алё, призёры олимпиад по математике с задачками на сообразительность)))0)) тут есть? Поясните по хардкору за монеты.
24 1274770
>>274717
Подозреваю, что переводчик, который написал такой перевод как минимум педофил, а то и собакоеб-зоофил, натирающийся собачьим говном и делающим подобные вещи целыми днями.
25 1274778
>>274755
Я понял, спасибо тебе большое.
26 1274783
>>274770
А как ты упростил бы? Это не переводчик, просто на русском реально трудно подобные конструкции читать.
27 1274987
Количество вариантов размена суммы n (в данном случае 10) равно количеству способов разменять сумму n (10) без использования монет х (в данном случае 5), а изначально монеты могут быть номиналом 1, 2 и 5.

Вот хотя бы таким языком, чтобы ты сразу прочитал и понял. А не сидел и тупил, как долбоеб, что это за набор слов и что эта хуета означает.
28 1274989
29 1274995
первый ТИП монет. это не тип, блядь, это номинал. можно написать без использования монет таким-то номиналом, а используя остальные.
30 1275010
>>274717
>>274758
>>274987
Я пока древо рекурсий в пейнте не нарисовал, тоже нихуя не мог понять эту херотень. Алсо, как раз после этой задачки понял, что советовать эту книгу нулевому вкатавальшику - ТРОЛЛИНГ.
31 1275218
>>274778
:3

>>274987
В твоем варианте мало того, что ВООБЩЕ НИХУЯ НЕ ПОНЯТНО, так он еще и некорректный тащем-та.

>>274995
Ага, вместо "первый тип монет" писать "монеты наибольшего номинала из имеющихся". Ну хуй знает, то же самое, только букв больше.

>>275010
В каждом треде вроде по 10 раз все повторяют, что если учился в плохой школе без уроков программирования, не очень сообразительный, не можешь в математику и т.д. и т.п. - то для тебя есть htdp, книжка специально для школьников (а сикп - для студентов). Даже в факе написано "хтдп+сикп".
32 1277282
Почти месяц у меня был перерыв, когда я тупил с базами. Сейчас нужно описать для себя функции, которые не являются базовыми, ну и разобраться с подключением баз. Продложим :)
оп
33 1277302
есть htdp на русском ?
34 1277327
>>277302
нет
35 1277363
>>277282
Добро пожаловать снова :3
36 1277392
Ребят, сикп хорошая штука, чтобы пробудить в себе мышление погромиста?

Я просто даун-гуманитарий, даже простые математические задачки не решал толком.
37 1277401
>>277392
Тебе лучше зайдёт HtDP.
38 1277447
Процедура memv принимает два аргумента, объект и список. Он возвращает первый подсписок или хвост списка, car которого равен объекту, или #f, если объект не найден в списке. Значение memv может использоваться как список или как значение истинности в условном выражении.

Объясните долбоебу, что делает эта функция. Русским, блядь, языком. Если объект в списке не найден, выводит #f, это я понял.
39 1277463
>>277401
Где скачать HtDP?
40 1277464
>>277463
Онлайн читай, только вторую версию, а то я тогда наебался и н ачал первую читать.
оп
41 1277465
>>277464
Чем вторая версия круче?
42 1277470
>>277465
Там на 200 страниц меньше, уже вполне аргумент. И мол выкинули они ненужную хуйню.
43 1277478
(define getq
(lambda (q)
(car (car q))))

Что делает эта функция? Ну хорошо, первым car берет первый объект списка. При раскрытии скобки единственный элемент берет еще раз?
Или учет на то, что изначально в q будет список из списков, первый car возьмет первый список, а второй car из этого списка возьмет первый элемент?
44 1277483
(define delq!
(lambda (q)
(set-car! q (cdr (car q)))))

В догонку эту функцию. Она тоже изначально, что q это список списков, потом от первого списка берет cdr ? Просто других вариантов не вижу.
дебильный оп, как вы уже догадались
45 1277484
Короче все функции переписал расшифровку (было около 15), ну кроме двух последних. Завтра буду опять подключение базы штурмовать, ваши посты у меня сохранены. Ну, чует сердце, приду завтра с дебильными вопросами, лол.
2018-10-11-110424454x120scrot.png10 Кб, 454x120
46 1277577
>>277447
Есть такая тупая, но готовая за хозяина пасть порвать штука, как документация. Вот смотри: https://groups.csail.mit.edu/mac/ftpdir/scheme-7.4/doc-html/scheme_8.html#SEC78
Там даже примеры приведены, специально для тупеньких, и явно написано, что memv - тоже, что и memq, просто использует для сравнения eqv? , а не eq? .
47 1277578
>>277478

> Или учет на то, что изначально в q будет список из списков, первый car возьмет первый список, а второй car из этого списка возьмет первый элемент?


Да.
48 1277579
>>277483

>В догонку эту функцию. Она тоже изначально, что q это список списков, потом от первого списка берет cdr ?


Да.
Ну или не список списков, а список с парами (cons'ами). Список - это, как ты наверняка уже знаешь, частый случай cons'а, у которого cdr'ом хвост списка, а не просто какой-то рандомный скалярный элемент (т.е. число там какое-нибудь или строка).
Вот видишь, уже начинаешь шарить и без нас.
> Она тоже изначально, что q это список
А ещё ты случайно бутылку колы.
49 1277606
>>277577
Ок, сейчас пойду почитаю.
>>277579

>начинаешь шарить без нас


Ну дорогу осилит идущий, хуле делать. Там выше ссылку кинули, с одной функцией доразбираюсь, да буду базы мучать, подключать их. А так 2 главы книжки разобрал, базы подключить, да дальше идти.
50 1277617
>>277606

>базы подключить


Что за базы ты упоминаешь уже два поста? Ты уже до реляционных баз данных добрался? В HtDP же вроде про это нет.
51 1277624
>>277617
Да не, функции, которые изначально в ракете не прописаны. Нужно куда-то там закинуть, че-то там сделать, чтобы каждый раз их не расписывать. Голову ебал месяц назад, так хуй осилил и бросил. Теперь с новыми силами и мыслями буду опять пробовать.
ok-hand-sign1f44c.png8 Кб, 160x160
52 1277627
>>277624
А. Успехов, чо
53 1277628
Да, и читаю я не хтдп, а это -> https://www.scheme.com/tspl4/
54 1277700
>>277447
Ну то есть она просто ищет элемент в списке, а когда находит его, возвращает и этот элемент, и все оставшиеся элементы (в отличие от memq, которая возвращает только сам элемент). Иными словами, она выкидывает начало списка до искомого элемента, и возвращает все что после него.
55 1277701
>>277624
Только это не базы, а модули, кек.
надо говорить правильно.mp4966 Кб, mp4,
1280x720, 0:06
56 1277712
>>277700
Грубо говоря 4 (1 2 4 4 5 7 6) вернет (4 4 5 7 6) ?
>>277701
Ну модули, че как видеорилейтед?
2018-10-11-184725244x118scrot.png2 Кб, 244x118
57 1277808
>>277712
Почему бы тебе не взять и не проверить самому? Практика - критерий истины же.
Алсо, на твоём видеорелейтед самый пассионарный персонаж всего русского кинематографа. Когда вырасту, я хочу стать как он.
58 1277827
>>277712
Двачую оратора выше. Как-то странно спрашивать на зекаче, что вернет твоя функция, когда ты можешь, блждад, взять и запустить сам.
59 1277828
>>277712
Алсо, нацепите пожалуйста кто-нибудь аниме им на лица и поставьте войсовер "ты же сикп читаешь, няша, надо говорить правильно"
2018-10-11-222431373x226scrot.png16 Кб, 373x226
60 1277891
Только что доделал предпоследнее упражнение. УУУУХ БЛЯ, аж обои чуть не отклеились две недели почти делал
beer.jpg72 Кб, 604x604
61 1277906
>>277891
Малаца, Леонид Агутин одобряет!

сперва подумал, что это оп две недели факториал писал, ололо
62 1277932
>>277808
>>277827
Да я сидел, с теорией в другом вопросе разбирался, не относящемся к компьютерам, вот че-то и затупил, на словах стал спрашивать.
63 1277965
Короче сидел, разбирался с модулями сегодня. Не целый день, но так, наскоками. Читал ваши советы в прошлом итт. Один из советов был, прежде чем модуль сохранять, нужно нажать "run" и посмотреть, все ли функции работают. Блядь, пришлось многие удалить, Т.к. почему-то в залупу ракета лезла, че-то не нравилось. Ну да хуй с ним. Уж чисто ради результата оставил одну самую простую функцию про возведение в квадрат. Главное разобраться, как подключить, а потом докинуть проблем не будет, равно как и разобраться с тем, какого хуя ему расшифровка не нравилась. В общем почитал, что-то понял, завтра буду добивать. Ну и наверно с разрывом жопы сюда припрусь, Т.к. опять че-нибудь не склеится :)
64 1278065
>>277965
какой же ты долбоёб, это неописуемо
я любя
65 1278098
Два дня пытался решить упражнение 1.28, частично решил (не полностью), потом посмотрел решение в инете, и теперь нахлынула депрессия, что сам не решил, и хочется вообще все нахуй бросить, пытаюсь забыть решение, чтобы начать превозмогать заново. Как с этим бороться?
66 1278120
ОП ОПЯТЬ СОСНУЛ

Давайте по порядку, как с конченным дебилом, разберемся с этими модулями. Создал два файла с одной функцией - другие докинуть потом не будет проблемой, сейчас бы все подключить. Внутрянка у них правильная, не надо ничего дописывать? И это нормально, что ракета на #lang ругается?

>>278098
А ты делай, как я - смирись с тем, что ты дебил, и все будет заебись :З
screenshot--10-12-1538.jpg307 Кб, 1366x768
67 1278128
Ладно, взял себя в руки и допилил 1.28, правда конечно, с подсказками.

>>278120
Няша, я перед sicp немного clojure делал (рекомендую Living Clojure, там интересные упражнения), и постоянно были проблемы с подключениям репла/проектов в редактор. В итоге плюнул на всё, и решил попытаться в emacs, который до этого три раза бросал. Так вот, переключение между scheme/clojure/racket/любым лиспом делается в несколько клавиш, очень удобно, рекомендую. Буквально за два дня настроил и разобрался в основах, после этого никакие мануалы вообще не читал (мне этого хватает пока, и да, многие конфиги я скачал готовые).
68 1278130
>>278128
Да мне бы с этим одним разобраться, а то переключение какие-то между языками. Тут-то оно уже как родное, уже и силы были потрачены, советов дана хуева гора. Мне кажется уже на самом пороге решения всей этой хуйни. Ну и люди тут знают, что куда, так что пока буду пробовать это домучать. Но за совет спасибо.
69 1278131
>>278130
у тебя Beginning Student стоит, идиотина
смени на нужное
70 1278139
>>278130
Понимаю, у меня emacs всегда ассоциировался с HEXом, над которым нужно танцевать день и ночь. В общем, нужно время и интерес/мотивация, чтобы начать.
1.jpg70 Кб, 592x644
71 1278140
>>278131
А нужное, это какое?
>>278139
У меня ни с чем не ассоциируется, Т.к. я не знаю, что это такое и пытаюсь хотя бы с чем-то одним до конца разобраться.
72 1278143
>>278140
Language > Choose Language > The Racket Language
73 1278146
>>278143
Хорошо, двигаемся дальше. Первый файл ругаться перестал. Второй на #lang ругаться тоже перестал, но начал ругаться на первый файл.
74 1278153
>>278098
Ну если ты посмотрел решение и разобрался, то на следующий день просто по памяти напиши рабочий алгоритм - и все, двигайся дальше, с этого упражнения ты получил все, что нужно. Суть же не в том, чтобы выебываться перед кем? перед собой? тем, сколько упражнений ты решил и какой ты охуенно умный, суть в обучении.
75 1278155
>>278120
Ты создал? Что ты создал? Пиши полные пути к своим файлам, телепаты все в отпуске как бы. Алсо, не используй на всякий случай пробелы в именах файлов, в венде постоянно с этим какая-нибудь хуйня вылазит. Ну это так, общие соображения.

У тебя же

>Language: Beginning Student


стоит, включи обратно полноценный рэкет (ты ж вроде включал уже), student-языки - это для тех, кто по хтдп занимается.

Алсо, нахуя ты ОДНУ И ТУ ЖЕ ФУНКЦИЮ в обоих файлах написал? Ты что, ебанутый? Тебе нужно из одного модуля импортировать (переиспользовать) функцию в другой, чтобы два раза ее не писать, але блядь, привет. Ух бля, ну-ка создал lib.rkt и main.rkt, быстраблядь! В либ.ркт положил свой скваре, в мейн.ркт написал (require ...) и какую-нибудь хуйню навроде (define foo (x) (square (+ x 1)), запустил кабанчиком, проверил циферки, хуль ты смотришь? Делай давай, блядь!
76 1278156
>>278128
Ты ебанутый? Нахуй ты ему имакс советуешь? И алсо у тебя на пике ты репл внутрь модуля перемещаешь, а ему надо разобраться с подключением модулей (и самой концепцией модуля, кек).

>>278146
Ну вот, не зря я в прошлом посте написал про пробелы и попросил запостить полные пути к обоим файлам, лол.
sage 77 1278160
>>278155
(define (foo x) ...), разумеется слоуфикс
78 1278164
>>278146
1) Они должны быть в одной директории
2) Добавь в левый строчку (provide square)
79 1278170
Адрес файлов просили, вот он C:\Program Files (x86)\Racket\моя библиотека\пробный
Опять пиздец и не там? Просто была непонятка еще с первого итт, там то папка db от слова дебил, который оп то еще какая-то, которой и в директории нет.
>>278164
Ну оба файла у меня в одной папке, если ты об этом.

Переименовал первый файл в lib.rkt, дописал в него строчку (provide square), появилось какое-то окно блядь голубое, как его убрать?

Переименовал второй файл в main.rkt, удалил из него функцию, дописал строчку (define (foo x) ...). На первый файл ругаться перестало, видать правда дело в пробеле было. НАчал на многоточие ругаться.
80 1278172
>>278170
а почему он не должен ругаться на многоточие?
81 1278175
>>278172
Ну я хуй знает, выше скинули, я так и скопипастил.
82 1278184
>>278128
Ууу, кокой у тебя клёви ч0рни емакс. Завидоват.
83 1278187
>>278175
Ладно, давай как с четырёхлетним аутистом, который не умеет в абстрактное мышление. Напиши в main.rkt после строчки с requre строчки

(define (foo x) (square (+ x 1))
(display (foo 1))

и запусти. Компрене?
15368619278300.png85 Кб, 258x327
84 1278195
>>278170

>дописал строчку (define (foo x) ...)

2.jpg88 Кб, 597x645
85 1278197
>>278187

>давай как с четырёхлетним аутистом


Давай, это нам и нужно.
2.jpg62 Кб, 596x648
86 1278198
Короче скобку надо было. Все ок, прошло.
87 1278199
>>278198
Правда поставил скобку в последней строке, может нужно было в предпоследней?
88 1278200
>>278170

>Просто была непонятка еще с первого итт, там то папка db


Тебе твои файлы совсем не обязательно хранить там же, куда установлен сам рэкет. Обычно их кладут куда-нибудь в мои документы, или как там у вас на венде это называется. И пиши на латинице (маленькими буквами), типа projects/mylib/main.rkt

>>278197
Блядь, ну ты сам разве не видишь, что там опечатка со скобкой?

>>278198
А, ну вот, видишь. Только теперь подумай, что ты написал.

(define (foo x) (square (+ x 1)))
(display (foo 1))
89 1278201
>>278199
Ну вот, могешь же, когда хочешь, кек.
2.jpg63 Кб, 594x644
90 1278204
>>278200
Перенес в мои документы, теперь адрес такой C:\Users\1\Documents\projects\mylib\lib.rkt
Ну второй файл в той же папке.
Вот, перенес скобку, вычислило 4.
Ну ок, дальше что делать?
1.jpg98 Кб, 592x643
91 1278207
Да, и как с этой пикчи убрать нахуй голубой экран с подсказками, или чем он там.
92 1278208
>>278204
Ну все, ты разобрался, как работать с модулями: разносить функции по разным файлам и импортировать эти функции в другие файлы.

>Ну ок, дальше что делать?


Ну видимо попробовать осознать, что ты сейчас сделал, прочитать еще раз первый параграф https://docs.racket-lang.org/guide/module-basics.html - ну и что ты там изначально хотел сделать, засунуть все свои воспомогательные функции в lib.rkt, не?

>>278207
У тебя два рэкета что ли открыто? Подозреваю, что нужно нажать замочек, кек.
93 1278210
>>278208
Я нажимал замок, он то открывается, То закрывается, но окно висит. Но сейчас открыл тот файл, уже нет этой хуйни. Да и хуй с ним. ушло и в рот ебать.
Такой вопрос, вот у меня ракета на рабочем столе ссылка. Вот я захожу в нее и вся эта хуйня сразу работать начинает, что сейчас наляпал? Ну хотябы эту функцию "зашквар", в квадрат которая возводит. Или блядь нужно теперь каждый раз в документы ползать и оттуда заходить в файл main ?
94 1278212
Короче с рабочего стола зашел, зашквару он нихуя не хочет видеть. И почему-то в первой строке теперь автоматом появилось #lang racket, а раньше не было
95 1278214
Ну ланг ракет это рангуаге ракета - выбран язык ракеты, я так понял. А вот с функциями пока непонятка блядь.
96 1278215
>>278210
Ну так у тебя же может быть сколько угодно файлов и проектов. Откуда ракетка знает, над каким ты сейчас хочешь работать? Нажимаешь ctrl+O (или open file через меню) и выбираешь нужный файл. Ну как в ворде, блин. Не знаю как в венде, в линуксе там по умолчанию показываются все файлы, которые ты недавно открывал.

Алсо, там же в настройках можно включить табы, ну чтобы было одно окно с несколькими табами, а не по окну на каждый файл, имхо так удобнее.
аа.jpg110 Кб, 956x642
97 1278219
>>278215
Я открыл сейчас через опен файл, высветилось второе окно, ну открывал lib.rkt, в нем написал зашквар 3, он их зашкварил в 9. Но блядь я файл переделаю, будет простыня огромная из всех этих расшифровок и всегда будет висеть она сверху? Тогда смысл всего этого, когда можно было тупо копипастить и не ебсти голову с модулями?
98 1278220
>>278219
Она у тебя будет в другом файле, простыня твоя. В lib.rkt у тебя будет простыня, а использовать эту простыню ты будешь во всех остальных файлах. Будет у тебя файл chapter1.rkt для упражнений из первой главы той книги, которую ты сейчас читаешь. Там ты сделаешь require и тебе будут доступны все функции из lib.rkt. Потом у тебя будет файл chapter2.rkt для упражнений из второй главы. Там ты тоже напишешь одну строчку с require и у тебя тоже будут доступны все функции из lib.rkt. Тебе не придется копипастить все в два разных файла. Потом если вдруг найдешь ошибку в какой-нибудь функции в lib.rkt, то ты ее один раз исправишь, в одном месте, и она (уже исправленная) сразу будет доступна и в chapter1.rkt, и в chapter2.rkt. А если бы ты копипастил, тебе бы пришлось в каждом файле ее исправлять (и в каждый файл копипастить все функции).
аа.jpg82 Кб, 584x590
99 1278229
>>278220
Я сейчас не sicp и не htdp читаю, а книгу для полных даунов.
Ну смотри, у меня первое окно открывается, когда я программу запускаю. С него открыл lib.rkt, с этого уже открыл новый файл, в нем попытался вбить (require lib.rkt), ну чтобы в нем работало. Блядь, мне опять это говно с замком вылезло, на этот раз уже вообще нахуй на весь экран блядь.
аа.jpg56 Кб, 651x454
100 1278231
Растянул на весь экран, ебаное синее окно осталось справа висеть. Вбил-таки рекуру с либом, ниже зашквар. Он гавкает, мол lib.rkt не понимает, что такое. Блядь, как оно заебало.
101 1278235
>>278229

>Я сейчас не sicp и не htdp читаю


Без разницы, там ведь тоже главы наверное есть, не? Ты же вроде книжку про scheme от самих авторов scheme читал, емнип.

>у меня первое окно открывается


На всякий случай еще раз скажу, что там в настройках есть "open files in tabs instead of new windows", или как-то так, чтобы первое окно было и единственным, а файлы открывались в табах. Имхо так гораздо удобнее, хотя дело вкуса конечно (особенно если у тебя монитор большой).

>С него открыл lib.rkt


Ну можешь не открывать, если ты там ничего менять не собираешься.

>(require lib.rkt)


Неправильно. Сравнивай с https://docs.racket-lang.org/guide/module-basics.html и ищи ошибку.

>>278231
Ну или тред буквально на пару постов выше проскролль и посмотри.
102 1278239
>>278235
Увидел, что кавычек не хватает, но не помогло, значит что-то другое. Ладно, пойду чайку заварю, да буду статью читать. Спасибо за терпение, няша.
un-apunte-en-torno05.png264 Кб, 348x348
103 1278240
>>278231

>Он гавкает, мол lib.rkt не понимает, что такое. Блядь, как оно заебало.


А надо так, в кавычках

>"lib.rkt"

sibo01.png77 Кб, 300x300
104 1278241
>>278239

>Увидел, что кавычек не хватает, но не помогло, значит что-то другое. Ладно, пойду чайку заварю, да буду статью читать. Спасибо за терпение, няша.


Файл должен в той же директории находится, что и файл из которого ты делаешь require.
Ты реквайреш из утилитед3, ты уверен что на диск его сохранил?
105 1278243
>>278241
Ну файлы lib и main сохранены. Просто у меня на рабочем столе значок ракеты, я его открываю и пытаюсь это сделать. Грубо говоря нужно пустой файл создать в той же папке, где два вышеуказанных, открывать его, в нем прописывать (рекурва либ) и все будет ок?
106 1278249
>>278239

>но не помогло


Сообщение об ошибке какое? Телепаты ушли в бар бухать.
107 1278250
>>278243

> Грубо говоря нужно пустой файл создать в той же папке, где два вышеуказанных


Просто открой main.rkt и там пиши. Но если прям нужен еще один файл - то да, создаешь в той же папке и делаешь require. Про относительные пути я даже не заикаюсь пока.
108 1278251
>>278249
C:\Users\1\lib.rkt
не удается найти файл либ по вышеуказанному адресу. Короче я сейчас на тот адрес те два файла скопирую и должно все полететь.
>>278250
Ну как вариант в той же папке я создам файл, ярлык от него размещу на рабочем столе и все будет заебца.
109 1278253
>>278251
Зачем тебе ярлык от него размещать на рабочем столе?
аа.jpg84 Кб, 795x559
110 1278254
ПОЛУЧИЛОСЬ, ЕБАНЫЙ БЛЯДЬ В РОТ
Сколько, сука, времени и нервов было потрачено на это говно, пиздец. Короче создал пустой файл в той же папке, ярлык скинул на рабочий стол, с ярлыка зашел, записал пикрилейтед и все сработало, осталось только другие функции туда захуячить, некоторые из них поправить, т.к. почему-то ракета ругается.
Последний вопрос на сегодня как это говно ебаное справа убрать? Приходится на весь экран программу растягивать.
>>278253
Чтобы заходить в два щелчка мышки, а не ползать в документы и куда там еще.
111 1278257
Хотя да, удалил нахуй этот ярлык, просто захожу в прогу с рабочего стола, а в ней через файл открываю тот файл. Сохранил сразу в нем фразу (рекурва либ), теперь заебись, можно сразу заходить и печатать, что нужно.
112 1278259
>>278254

>ПОЛУЧИЛОСЬ, ЕБАНЫЙ БЛЯДЬ В РОТ


Кек, конгратс! Можешь открывать пивас.

>как это говно ебаное справа убрать?


Я ж тебе уже говорил - на замочек нажми (ты ж его сам и закрепил там, лол, по умолчанию оно скрыто).

>Чтобы заходить в два щелчка мышки, а не ползать в документы и куда там еще.


Ну просто будет у тебя больше файлов - все их тащить на рабочий стол будешь? Имхо, дурацкая привычка, во всем должен быть порядок. Хотя у тебя-то кучи проектов на машине нет, так что в принципе конечно похуй...

>>278257
Да, вот так все-таки правильнее всего :3
113 1278261
>>278254

>Последний вопрос на сегодня как это говно ебаное справа убрать? Приходится на весь экран программу растягивать.


С кофемолки пишешь?
Нажми на замочек, чтобы он открытым стал.
После этого окошечко будет само собой прятаться, когда мышкой на него не наводишь .

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


Я конечно же восхищаюсь твоим стремленеием изучать Ракет, но у тебя очевидно недостаток общей компутерной грамотности.
Так то тебе будет сложно без этого.
Читнул бы какую нибудь книжку типа виндовс для чайников
\командная строка виндовс или что-то тому подобное.
Ты же тян?
sibobydecepticoin-d9758nn.jpg102 Кб, 743x1075
114 1278262
>>278257

>Хотя да, удалил нахуй этот ярлык, просто захожу в прогу с рабочего стола, а в ней через файл открываю тот файл. Сохранил сразу в нем фразу (рекурва либ), теперь заебись, можно сразу заходить и печатать, что нужно.


Сделай ярлык НА ПАПКУ со своими файлами.
115 1278263
>>278259

>Можешь открывать пивас


Да у меня че-то аллергия в последнее время на темное пиво, пятнами блядь покрылся, придется клюквенную настойку пить. А пиво-то люблю, как наберу всякой хуйни - сухарики, чипсы, орешки, рыбку, пиццу закажу..ммм, а тут блядь настойку придется. Но не сегодня, хотя сегодня предлагал пацану бухнуть, тот че-то в залупу залез. Ну зато здесь разобрался, как и что, это дорогого стоит. НАчинал-то голову ломать месяц назад и только сейчас понял. И то с вашей помощью, сам по себе еще дня 3 потупил бы, да пошел кому-нибудь деньги платить, чтобы разжевали, как долбоебу.

>на замочек нажми


Я нажимал, оно хуй куда уходило. Сейчас нажал, а оказалось нужно было мышку сдвинуть с программы, тогда эта хуета сворачивается. Короче тоже победил.
Спасибо еще раз, без вас бы правда за деньги пошел бы куда-нибудь узнавать, уже правда бесить начинало.

Итак, будем двигаться дальше. Сейчас все функции нужно будет скинуть в тот файл, но некоторые из них еще разобраться, почему работать отказываются, хотя копипастил с учебника и не менял.
После разбора функций буду дальше учебник штурмовать, 2 главы осилил, осталось еще 10. А потом, глядишь, на хтдп и сикп переключусь и уже побыстрее пройду, тупо зная команды языка и хоть как-то понимая всю эту логику, а то с нуля начинал, там просто пиздец. Ну вы и сами видите, насколько я интеллектуал, лол.
116 1278265
>>278261
Нет, не тян. хотел было пошутить, что много общего, члены там люблю и в жопу, но доска вроде не та, лол
117 1278267
>>278265
Ну если ты достаточно няшный, то клозе инаф фор ми.
118 1278271
>>278261

>Ты же тян?


Проиграл с такой предъявы.Но насчет общей компграмотноти двачую.

>>278262
Нахуя? Проще и логичнее из самой ракетки открывать, имхо.

>>278263

>да пошел кому-нибудь деньги платить


Если надумаешь, советую вот этого поца в пинджаке: http://erlang-mnesia-video.ru/

>А потом, глядишь, на хтдп и сикп переключусь


Мне кажется тебе необязательно все 12 глав заканчивать, чтобы хтдп начать проходить. Скинь еще раз ту книжку, которую читаешь, - у меня просто подозрение, что там ближе к концу идет уже описание всяких сложных штук типа макросов, которые логичнее как раз после хтдп (и сикпа) разбирать.

>>278265

>доска вроде не та


Тут каждая доска та, если ты понимаешь, о чем я ;););) ( ° ʖ °)
119 1278272
А, хотя не скидывай, нашел в начале треда, счас гляну
120 1278274
>>278271
https://www.scheme.com/tspl4/
Вот эта книжка. не, тему пидоров все-таки не хотелось бы развивать, а то мои посты, в т.ч. оп-пост потрут и пиздец
121 1278276
Что вы тут все на скобочки свои надрачиваете? Взяли бы OCaml или SML, что ли.
122 1278277
Ну в принципе да, тебе первые 5 глав надо прочитать. После этого думаю хтдп норм пойдет, и с оставшимися главами можно будет консультироваться по ходу дела в качестве справочника. Ну и еще части про continuations могут быть ОЧЕ мозголомными, лол, их можно для начала пропустить. Хотя даже не, реально прочитать и разобраться нужно с первыми двумя главами, и потом уже хтдп, используя эту книжку как справочник, чтоб если что-то непонятно - взял и посмотрел в ней подробное описание и примеры.
123 1278278
>>278274
-> >>278277 это вот тебе писал

>>278276
IDE уже завезли? Нет? Ну ладно.
124 1278279
>>278277
Ну первые 2 я уже осилил. Правда упражнения во второй половине второй главы уже не осиливал. Ну попробую 3 почитать, там посмотрю уже, как и что. Все-таки это уже пятая книга, которую я начал и бросать ее в тот момент, когда она идет вроде бы неплохо, не хотелось бы.
125 1278280
>>278278
Да я уж понял, что мне, тут нет второго такого же дебила :)
126 1278282
>>278279

>осилил


>Правда упражнения во второй половине второй главы уже не осиливал


))

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


Ну я бы не назвал это "бросанием". Просто это же реально не учебник по программированию, который надо читать последовательно, а справочник по языку (с примерами и объяснениями). То есть она сразу охватывает все возможности языка (третья глава начинается с макросов), которые тебе пока не особо нужны и скорее тебя только запутают. Ну посмотри, но не забывай, что самое важное - это упражнения.

>>278280
Лол
127 1278284
Что за дичь резко началась на квадратном корне?
128 1278285
>>278282
Я так понял, что упражнения не мог осилить, Т.к. толком не мог разобраться, что делают функции. Сейчас они описаны у меня и наверно уже получилось бы их решать. Короче попробую дальше пойти, пока такой план, а там, если что обратно на хтдп перекачусь. В любом случае я иду вперед, стремлюсь, ебу голову, собираю инфу, короче продвигаюсь. Сегодня реально прорыв произошел, т.к. подключил эти ебаные модули.
насчет дебила - ну должно же быть в человеке что-то хорошее, вот у меня самооценка здоровая :)
129 1278290
>>278284
Ну то есть что например вот эти строки значат?
(define (sqrt-iter guess x)
(if (good-enough? guess x)
guess
(sqrt-iter (improve guess x)
x)))
130 1278291
>>278285
Ну там в конце второй главы тоже относительно сложные упражнения в принципе. Я бы на твоем месте прорешал или хотя бы просто разобрался в решениях (быть может с помощью джвачика) до упражнения 2.8.7 включительно, и дальше пошел бы уже самостоятельно делать хтдп.

ну вот, а ты говорил, что второго нету, лол

>>278290

>Объяви функцию "квдртнкрнь" от двух аргументов ("догадка" и "икс"): если наша догадка достаточно-хороша, то ее и вернуть; в противном случае, вызвать квдртнкрнь с новой (улучшенной) догадкой и тем же иксом.

131 1278293
>>278291
Ну я тогда отредактирую функции, которые работать не хотят, а потом прорешаю 2 главу.
не, до его уровня мне далеко. Ну хотя если по ходу его книги те функции расписывались, то может и правда мы с ним одного поля ягоды
132 1278444
>>278278

>IDE уже завезли? Нет? Ну ладно.


>использовать IDE для написания laba1


Неосилятор, плиз.
133 1278450
>>271806 (OP)
Ребят а где обучиться Ракету чтобы на нем задачки решать? И где можно достать решения задач на нем чтобы проверить себя?
134 1278455
>>278450
ХтДП без шуток, там вступительный раздел
135 1278558
>>278291
Спасибо за объяснение, но объясните ещё плиз: была функция с названием sqrt-iter и формальными аргументами guess, x.
Потом в случае неудачи выполняется эта же функция, но уже с аргументами improve, guess, x. Я так понял, что guess меняется на improve, а почему по той же логике x из первой скобки не меняется на guess из второй, получается, замена идёт только для первого аргумента? И зачем в конце x?
Извиняюсь за такие нубские вопросы если что.
136 1278570
>>278444
Лично я использую ide (GNU/Emacs) для написания всего, вплоть до текста этого поста. Но при чем тут я?..

>>278450
https://htdp.org/2018-01-06/Book/

>>278558

>но уже с аргументами improve, guess, x.


Нет, ты в глаза ебешься?

(sqrt-iter (improve guess x) x)

guess заменяем на (improve guess x), improve - это еще одна функция, дальше по тексту смотри.

>а почему по той же логике x из первой скобки не меняется


Потому что ты все еще считаешь квадратный корень того же самого числа, не?
137 1278599
>>278570

> guess заменяем на (improve guess x)


Вот я со скобками запутался и не понял этого, сенкс.
138 1278691
У меня к Вам небольшой вопрос. Не сочтите его как какую-нибудь агрессию, я Вам правда буду благодарен за ответ.
Я занимаюсь разработкой БД, параллельно учусь на четвёртом курсе в тех. вузе. В этом вузе появился предмет, связанный с языком lisp. Я уверен, что смогу сдать этот предмет не прилагая усилий. Например, я могу купить решенные задачки и скатать со шпор на экзамене, но могу подойти с другой стороны, например, осилить эту книжку.
В чём, собственно говоря, вопрос? Какие преимущества, связанные с моей будущей карьерой, я смогу получить, если вложу усилия в работу с этой книгой? Может я стану умнее и смогу решать задачки на собеседованиях? Или я смогу ответить на большинство вопросов связанные со структурами данных? Может ли дать эта книга хоть какой-то продуктив?
139 1278713
>>278691
Толсто, слишком толсто, попробуй в другой раз.

> > выразительная вежливость выдает мошенников


> > :



>Вам


>Не сочтите его как какую-нибудь агрессию


>буду благодарен



> > наивные вопросы "студента 4-го курса"


> > намеренное занижение интеллекта


> > подчеркнутое "незнание" темы вопросов


> > :



>преимущества, связанные с моей будущей карьерой


>Может я стану умнее и смогу решать задачки на собеседованиях


>смогу ответить на большинство вопросов связанные со структурами


>данных


>хоть какой-то продуктив



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

Ну а это вообще пушка:

> появился предмет, связанный с языком lisp


> осилить эту книжку


Это в каком вузе в 2018 году преподают лисп, да ещё, где требуется читать SICP.

> я могу купить решенные задачки и скатать со шпор на экзамене


Как уже написал выше, подумай над тем, чтобы поменять направление в жизни. Спасибо, я кончил.
139 1278713
>>278691
Толсто, слишком толсто, попробуй в другой раз.

> > выразительная вежливость выдает мошенников


> > :



>Вам


>Не сочтите его как какую-нибудь агрессию


>буду благодарен



> > наивные вопросы "студента 4-го курса"


> > намеренное занижение интеллекта


> > подчеркнутое "незнание" темы вопросов


> > :



>преимущества, связанные с моей будущей карьерой


>Может я стану умнее и смогу решать задачки на собеседованиях


>смогу ответить на большинство вопросов связанные со структурами


>данных


>хоть какой-то продуктив



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

Ну а это вообще пушка:

> появился предмет, связанный с языком lisp


> осилить эту книжку


Это в каком вузе в 2018 году преподают лисп, да ещё, где требуется читать SICP.

> я могу купить решенные задачки и скатать со шпор на экзамене


Как уже написал выше, подумай над тем, чтобы поменять направление в жизни. Спасибо, я кончил.
140 1278726
>>278713

>Это в каком вузе в 2018 году преподают лисп, да ещё, где требуется читать SICP.


У нас на первом и 2ром курсах преподавали в рамках общего знакомства с AI.
Но это было конечно 10 лет назад.

И да, согласен, какой-то припезденный тролль.
sage 141 1278799
>>278713
>>278726
Судя по тому как Вы меня полили дерьмом, я могу сделать вывод, что профитов нет. Но все равно, спасибо.
шарага мтуси, если кому интересно
Стикер512x411
142 1278929
Здрасьте. Я переживаю, что не могу некоторые задачи сам решить, это сильно плохо, если буду смотреть решения?
143 1278946
>>278929
Сильно.
144 1278954
>>278691
Хуй знает, по-моему студенты делятся на тех, кто покупает лабы, и на тех, кто эти лабы продает. Так как ты относишься к первой категории еще и на 4 курсе, никакие лиспы, сикпы, алгоритмы и задачки на собеседованиях тебе не нужны.

Ну, это так, взгляд со стороны.
145 1278955
>>278929
Имхо, если будешь не просто смотреть, а разбираться и потом воспроизводить самостоятельно - нормально, ничего плохого.
146 1278960
>>278954
Одну секунду.
Как я уже писал, у меня на данный момент уже есть работа, с доходом выше чем у тех, кто продает вузовские задачки. И конечно же, я знаю алгоритмы. Просто я хочу тратить свое время рационально, по этому и задаю такие вопросы.
147 1278971
>>278960

>Просто я хочу тратить свое время рационально


>(Сидит на сосаче)


Проигрыш.
148 1278972
>>278691
Она доставляет удовольствие. А жизнь без удовольствий это хуйня
149 1278989
>>278971
Хорошо, я оговорился. Тратить не время, а усилие.
150 1278994
>>278972
Смотри, условно я получаю удовольствие от миньета проститутки и скуриванием косяка кококо не программист. Если я вложу усилия в эту книгу, какой фитбэк я получу?
151 1278999
>>278994
Никакого. Но лучше тебе было бы научиться получать удовольствие от таких вещей, потому что иначе ты быстро выдохнешься и станешь несчастным - типа, как бы побыстрее с работы быстрее убежать косяк покурить.
SICP это очень философская книжка, и это отличает раба от гражданина.
152 1279019
Если в Racket с помощью 2htdp/image нарисовать 2 идентичных внешне изображения, но разных по структуре (к примеру, на одном ещё расположить пустое изображение), и потом применить к ним "eq?", то результат будет false
Есть ли какой-то аналог "eq?", который будет сравнивать изображения не по их структуре, а именно как они выглядят?
153 1279022
>>279019
по совместительству вопрос, никто не знает, есть какой-нибудь простой способ сделать заливку в изображении? Ну, как в Paint
Чтобы через big-bang, к примеру, кликал на квадрат и он менял цвет на нужный (именно квадрат, не заходя за пределы)
154 1279079
>>278960
Ну анон, тебе как-то яснее выражаться надо. Алсо, я понятия не имею, какой у тебя уровень, чем ты собираешься по жизни заниматься, и вообще ты не предоставил никакой информации для ответа на твой вопрос. Раз ты на 4 курсе и работаешь, то ты наверное уже должен давным-давно знать и алгоритмы, и структуры данных, и задачки на собеседованиях уметь решать? Если нет - то непонятно, чем ты все это время занимался, см. предыдущий пост про покупающих студентов (но опять же, ты вроде говоришь, что ты не такой). Книжка-то вообще-то для первокурсников (ладно, очень сообразительных первокурсников). Подавляющее большинство отзывов о ней от уже опытных разработчиков, читавших ее далеко не на заре карьеры, - да, интересно и полезно, стал более лучше одеваться писать код. С другой стороны, раз ты БД делаешь, то ты байтоеб - может тебе это и не нужно и не интересно, может ты вообще потом в ебмеддед хочешь. А может и нужно и интересно - я не знаю, а ты не говоришь. В любом случае, ты ведь можешь прочитать оглавление и сам сделать какие-то выводы, не?
155 1279081
>>279019
Напиши сам. Переведи в битмап, сравни попиксельно.

>>279022
Гугли алгоритмы поиска пути, например. Для квадрата тебе достаточно просто идти во все стороны от данной точки и перекрашивать пиксель, пока он того же цвета, что и изначальная точка.
156 1279086
>>279081
с квадратом всё понятно, мне нужен универсальный вариант

а как сравнить попиксельно? то есть, как выделить определённый пиксель изображения?
я хочу сделать таким образом:
допустим кликаю внутри квадрата, незакрашенного
там, к примеру, белый цвет внутри
дальше от каждого пикселя всего изображения поочерёдно рисую линию белого цвета до того пикселя, на который кликнул, если старое и новое изображение равны, значит преграды в виде другого цвета, в данном случае грани квадрата, нет, и можно заменить пиксель на нужный цвет
и так со всеми пикселями
157 1279088
>>279086
вернее не от каждого пикселя, а от тех, которые белого (того же) цвета
158 1279089
>>279086
и проблема в том, что когда нарисую эту дополнительную линию, через eq? всё равно результат будет false => мне нужна замена eq?

если нужно самому написать, то у меня только вопрос, как сравнить попиксельно
159 1279090
>>279079
Послушай, формулировка как нужно для кого-то не совсем верная. Я сам не знаю, что меня ударит в голову и кем я захочу стать. Я хочу понять, зачем она нужна вообще?
160 1279091
>>279081
и что ты имел ввиду под "переведи в битмап", зачем?
я сохраняю в bmp, открываю в bmp, всё равно изображение тоже (в структурном плане, внешне понятно, что тоже самое)
161 1279115
>>279090
Эта книга лучшее что может быть из Introduction to Computer Science, она дает фундаментальные знания с точки зрения архитектора систем, а не просто потребителя фреймворков; она - это начало пути, который займет годы, а не этап, после которого можно говорить о каких-то конкретных результатах.
162 1279118
>>279115
Другими словами - если ты хочешь быть виртуозо в программировании, то эта книга обязательна в твоей толстой библиотеке судя по всему нет, и это твой выбор. Если тебе нужно рубить бабло - ищи способы рубить бало.
# OP 163 1279133
Ебать у вас тут сложно все. Я пробежался краем глаза полупьяным взглядом, не, сегодня мне тут делать нехуй. Сижу я, клюковку на коньячке попиваю :З
164 1279144
>>279086

>мне нужен универсальный вариант


Ну я ж говорю, в общем случае - гугли поиск пути, это практически то же самое. У тебя ведь есть точка и некая область вокруг нее того же цвета, а все пиксели другого цвета - это как бы "стены", и тебе нужно найти все точки в изображении, в которые есть путь из начальной точки. Смекаешь?

>а как сравнить попиксельно?


Для начала вкури документацию: https://docs.racket-lang.org/teachpack/2htdpimage.html#(def._((lib._2htdp/image..rkt)._image-~3ecolor-list))

>рисую линию белого цвета до того пикселя, на который кликнул


А с чего ты взял, что у тебя по прямой путь должен быть путь до твоего пикселя? Смотри, представь у тебя белое изображение, и посередине черная горизонтальная полоска почти на всю ширину (но не до конца, по бокам проход остается). С твоим алгоритмом если кликнуть в нижней части и потом взять пиксель в правой части и провести между ними прямую линию, она наткнетяс на черную полоску, и ты ничего не закрасишь. А на самом деле тебе надо закрасить все изображение. Хинт: ты описал алгоритм освещения (рэйкастинг), в 2д играх часто такой используют для отрисовки области видимости персонажа: пускаем из персонажа прямые линии во все стороны и рисуем сцену там, где эти линии не пересекаются со стенками. Смотри: https://srdja.github.io/raycaster-demo/ (на кложе)
165 1279150
>>279090

>Я хочу понять, зачем она нужна вообще?


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

То есть это введение в программирование и дизайн программ, где в качестве предметной области сами программы, как-то так. Не уверен правда, что это понятное объяснение, кек
166 1279152
>>279144
не в правой, а в верхней
фикс
167 1279156
>>279133
лол
обучение программированию уровня сикп-треда: гомопидоры, аниме и алкоголь
168 1279157
сикп, наркотики и аниме
169 1279161
>>279144
а ты классный :3
спасибо, я тебя понял
170 1279237
>>279150

>Не уверен правда, что это понятное объяснение, кек


Нет достаточно понятных объяснения для даунов. Так что пойдет.
171 1280212
>>279144
Interactions disabled

Есть вариант сделать так, чтобы всё не шло пиздой при больших рисунках? Чем проще делаю код, как-то хитрю, тем более большие рисунки обрабатывает моя заливка
Но всё равно есть предел, при котором "Interactions disabled"
172 1280279
>>280212
Конечно есть, попробуй помолиться ктулху, есть еще вариант приложить подорожник к монитору. Телепаты ушли настойку пить, твой код не видно как бы
173 1280287
>>280279
https://pastebin.com/i8ZRiEsB
5 и 6 строки снизу, с них начинать смотреть
174 1280288
>>280287
за говнокод сразу извините
175 1280307
>>280287
П И З Д Е Ц

Ты правда думаешь, что в этом говне кто-то будет разбираться?
176 1280311
>>280307
ну так намекнули, чтобы скинул
там разбираться в 1/4 кода максимум, если учитывать мой вопрос, а не смотреть тупо весь код
177 1280547
>>280311
Нахуя ты все в лямбду обернул? Что за ебанутые имена с миксом из заглавных и нормальных букв? Нормально оформить код аллах запрещает, хотя бы пустые строки между дефайнами поставить? Что вот это за пиздец:

>((and (= (car (cdr (cdr x))) 2) (>= My (+ 25 (* (car (cdr (cdr (cdr x)))) 0.5))) (mouse=? B "button-down")) (cons (car x) (cons (cons `(,(make-coord Mx My)) (car (cdr x))) (cdr (cdr x)))))



???
399px-DrakefaceSoap.jpg46 Кб, 399x600
178 1280730
>>280287

>https://pastebin.com/i8ZRiEsB


>((and (zero? (car (cdr (cdr x)))) (>= My (+ 25 ( (car (cdr (cdr (cdr x)))) 0.5))) (mouse=? B "drag")) (cons (place-image (Figure x) Mx My (car x)) (cons (cons (make-coord Mx My) (car (cdr x))) (cdr (cdr x)))))


((and (= (car (cdr (cdr x))) 1) (>= My (+ 25 (
(car (cdr (cdr (cdr x)))) 0.5))) (mouse=? B "button-down") (false? (empty? (car (cdr x)))) (list? (car (car (cdr x)))) (= (length (car (car (cdr x)))) 1))
(cons (scene+line (car x)
(coord-x (car (car (car (cdr x))))) (coord-y (car (car (car (cdr x))))) Mx My
(make-pen (car (cdr (cdr (reverse x)))) (car (cdr (cdr (cdr x)))) "solid" (?Form (car (cdr (reverse x)))) (??Form (car (cdr (reverse x))))))
(cons (cons (cons (make-coord Mx My) (car (car (cdr x)))) (cdr (car (cdr x)))) (cdr (cdr x)))))
((and (= (car (cdr (cdr x))) 1) (>= My (+ 25 ( (car (cdr (cdr (cdr x)))) 0.5))) (mouse=? B "button-down")) (cons (car x) (cons (cons `(,(make-coord Mx My)) (car (cdr x))) (cdr (cdr x)))))
((and (= (car (cdr (cdr x))) 2) (>= My (+ 25 (
(car (cdr (cdr (cdr x)))) 0.5))) (mouse=? B "button-down") (false? (empty? (car (cdr x)))) (list? (car (car (cdr x)))) (= (length (car (car (cdr x)))) 1))
(cons (scene+line (scene+line (scene+line (scene+line (car x)
(coord-x (car (car (car (cdr x))))) My Mx My
(make-pen (car (cdr (cdr (reverse x)))) (car (cdr (cdr (cdr x)))) "solid" (?Form (car (cdr (reverse x)))) (??Form (car (cdr (reverse x))))))
Mx (coord-y (car (car (car (cdr x))))) Mx My
(make-pen (car (cdr (cdr (reverse x)))) (car (cdr (cdr (cdr x)))) "solid" (?Form (car (cdr (reverse x)))) (??Form (car (cdr (reverse x))))))
(coord-x (car (car (car (cdr x))))) (coord-y (car (car (car (cdr x))))) Mx (coord-y (car (car (car (cdr x)))))
179 1280924
>>280287

> (car (cdr


Ебанат, ты в курсе существования cadr, caddr и прочих?
180 1280926
>>280730
Кстати, выглядит как типичный С++ геймдев.
181 1281129
>>280924
так-то есть более удобные first. second, third и т.д.
так что проверяй за щекой
182 1281131
>>280924
у меня там функция в этом коде, которая любой элемент возвращает, нахуй мне твои cadr, долбоёбище
если мне так удобнее, значит мне так удобнее
а твоё ебаное мнение я не спрашивал
183 1281132
>>280924
и даже если нужно обрезать список, у меня опять же там функции Cut и UnCut, которые сам написал
и они будут удобнее твоей параши
184 1281142
>>280926
Кек, точно.

>>281131

>если мне так удобнее, значит мне так удобнее


Анон, если ты устроишься на работу, накодишь первый таск, а потом на код-ревью в ответ на справедливые претензии лида, что у тебя ебаный говнокод, в котором не разобраться, скажешь "если мне так удобнее, значит мне так удобнее, пошел нахуй", то тебя скорее всего уволят. Рефактори свой код, там совершенная лапша. Алсо, тормозит у тебя скорее всего из-за того, что ты налево и направо используешь reverse, и в коде наверняка куча мест с квадратичной сложностью - но, как я уже сказал, никто в таком адовом говне разбираться не будет, как минимум оформи код по правилам и убери эти наркоманские цепочки (car (car (car (cdr x...

>>281132

>Cut и UnCut


В scheme используется kebab-case, а не CamelCase.
185 1281143
>>281129
Алсо, насчет этого двачую. Хотя если они тебе нужны, то скорее всего лучше использовать деструктуринг.
186 1281148
>>281142
я разобрался с той проблемой
лимит памяти маленький был очень
ну а за reverse спасибо, буду стараться меньше его юзать
про то, что код говно, я знаю
я же не на заказ пишу, а для себя
1539877840800.jpg42 Кб, 459x762
187 1281154
>>281148

> код говно


> я же не на заказ пишу, а для себя


А у меня обычно наоборот.
188 1281171
>>281143

> деструктуринг


В схемке разве есть? SICP дорешал почти до конца последнее упражнение осталось, про деструктуринг в нём вроде ничего не было. Гуглинг выдаёт только CL-евский loop.

>>281154
Лол, два чаю этому. За деньги наебошу любую парашу, лишь бы заработало, а пет-проекты вылизываю, как кот яйца.
189 1281210
>>281154
Кек, двачую.

>>281171
Ну там паттерн-матчинг есть, считай то же самое, если не использовать навороты. Еще values есть, хотя это хуйня.
190 1281624
Какая-то странная в книге заготовка решения задачи о восьми ферзях (2.42). Они зачем-то сначала добавляют очередную вертикаль ко всем существующим расстановкам ферзей и затем проходят по ним всем, чтобы отфильтровать не правильные.
Мой вариант решения сразу идет по списку текущих расстановок и пытается к каждой из них добавить очередную позицию.

https://pastebin.com/iYHD5ft4
191 1281853
>>281624
Ну потому что там же в описании задачи рекурсивное решение, код просто его транслирует.
# OP 192 1281955
Вечер в хату, лол. Решил чутка разбавить ваши обсуждения дебильным вопросом. В прошлый раз мне помогали модули подключить. Успешно создали два файла и пр. Теперь я решил расширить библиотеку и в файл lib.rkt докинул другие функции, а то изначально у меня там только square была. Докинул, сохранил, а в рабочем файле только square работает, а остальное нихуя не определяет. Может во второй файл нужно что-то дописать?
193 1281959
>>281955
наверно нужно написать
(provide имяфункции)
для каждой из функции?
194 1281960
В емаксе для ракетки есть интеграция с реплом типа слайма или сидра?
195 1281963
>>281959
Да, все пошло спасибо. Правда некоторые функции работают, некоторые нет. Но пока сам попробую поразбираться.
197 1282199
>>281960
Да, есть гейзер, и по-моему есть еще какая-то более новая штука, которая эмулирует слайм (но гейзера в принципе достаточно для написал-запустил).
198 1282201
>>281959
Можно экспортировать все функции разом, если что, чтобы не писать каждое имя по отдельности.
199 1282203
>>282142
Надо было learn you a haskell вместо керниганаричи, лол
200 1282339
>>282201
не подскажешь, каким образом?
2.82 202 1282411

>Измените apply-generic так, чтобы она не пыталась применить приведение, если у обоих


аргументов один и тот же тип.

Но зачем? Если оба типа приводимы к другому - мы успешно отработаем. Если такого приведения нет или операция не определена для приводимых типов тоже - будем ошибка. Это же нормальное поведение, нет?
1-13-656x390-1-702x390.jpg44 Кб, 702x390
203 1282412
>>282407

Поехали.
204 1282507
(define proc1
(lambda (x y)
(proc2 y x)))

Оп продолжает ебсти голову. Есть функция, которая меняет местами аргументы. В ебанутом учебнике она написана как-то так. Но дальше по тексту там откровенная дичь, мол программа не будет ругаться и нормально сработает до того, как мы определили proc2, хотя по тексту касаемо proc2 там инфы нихуя и нет.
Суть вопроса - как подкорректировать программу proc1, чтобы она просто адекватно меняла местами аргументы?
205 1282509
>>282507
у тебя всё и так правильно
типо если ты подставляешь в proc2, к примеру
пусть она будет такая
(define (proc2 a b)
(+ (* a 2) (- b 2)))
подставляешь короче, например
(proc2 5 10)
то возвращается определённый результат
а через proc1 ты меняешь местами аргументы прежде, чем подставить их в proc2
(proc1 10 5)
она вызовет (proc2 5 10)
всё
206 1282510
>>282507
а то, что она не определена
это не нормально
чё-то на пиздёжь похоже
207 1282511
>>282509
Спасибо, я понял. Ну а если я просто хочу местами поменять два аргумента? Ну блядь пришло у меня с какой-то функции Х У, а я хочу, чтобы дальше пошло У Х, как бы мне описать? Просто то, что ты пишешь, для меня пока сложновато, мне бы с чем-то более простым пока разобраться. Грубо говоря от того, что ты написал, я какой-то пользы не вижу, в смысле не представляю задачу, которая мне будет поставлена и это все пригодится.
аа.jpg56 Кб, 598x516
208 1282512
209 1282513
А, в учебнике точно, есть. В глаза я проебался. ИЗвиняюсь. Просто я переписывал каждую функцию и описания для proc2 не нашел, потому ее не описал и получилось, что ее нет. А оказалось, что они вместе с proc1 работают и друг без друга не существуют. Короче вопрос с повестки дня снимается. Спасибо.
210 1282514
(define proc2 cons)
Там еще как-то по ебнутому описано.
211 1282516
>>282514
cons - это для списков и пар
(cons 1 '()) - список с элементом 1
(cons 1 (cons 2 '())) - список с элементами 1 и 2
(cons 1 2) - пара с 1 и 2
и всё такое
типо у тебя просто вместо cons сделали ему другое название вдобавок к старому - proc2
аа.jpg105 Кб, 983x290
212 1282517
Вот и разберись, блядь, без стакана, че там происходит и что они сказать хотели. И больше нихуя нет по этим функциям, по крайней мере до конца второй главы.
213 1282518
>>282516
Хорошо, спасибо, попробую это как-то переварить и описать в своем документе. Но наркомания однозначная, как я считаю. Там пикча выше, это описания proc1 и proc2, все блядЬ. больше ничего сказано не было.
214 1282531
>>271806 (OP)
Аноны, хочу прорешать книгу, но без ебли со схемой.
Можно ли для этих заданий использовать например js?
Или задания специально заточены под схему?
215 1282551
>>282517
Ты можешь описать proc1 не имея proc2 в области видимости - это не будет ошибкой, но ты не можешь вызывать proc1 если у тебя не задан proc2. Введи код с картинки в той же последовательности - все будет работать пока ты не уберешь 4 строку.
216 1282552
>>282531
Там все объясняется на схеме. Т.е. тебе полюбому придется читать ее, почему бы и не писать?
217 1282594
>>282531

Можешь, в принципе, на любом языке решать сикп, но тут есть нюанс: схема дает тебе определенный уровень абстракции, уже поддерживаемый языком (функции, как объекты первого порядка, S-expression, динамическая типизация и т.п.), эти абстракции используются, как строительные блоки. Если в выбранном тобой языке их не будет, тебе придется реализовать их самому, или как-то изъебываться иначе.
Поэтому, зависит от того, какой у тебя опыт программирования вообще и опыт на языке, которым ты хочешь решать сикп, в частности.
Конкретно с JS, вроде, особых проблем быть не должно, даже если ты новичок в нем. Но вот если бы ты захотел решать сикп на Си, возникла бы куча лишних сложностей.
218 1282625
>>282552
>>282594
Спасибо что ответили!
Мельком читал тред и в принципе задачки не особо сложные. Против схемы ничего не имею, просто готовлюсь на вакансию жс джуниора и хотел бы набить руку именно на жс.
Еще меня пугает, что охуею разбираться со схемой, про которую до этого треда вообще не слышал.
219 1282662
>>282625
Книга не предполагает наличие у читателя знания схемы, там все походу про этот язык рассказывается.
220 1282700
>>282339
Открой документацию, епта! Там же все написано, ссылку уже дюжину раз вкидывали.
221 1282704
>>282407
Кек.

>>282411
2.81, не? Там же речь о том, чтобы вместо добавления x->x приведений изменить саму apply-generic.

>>282507
Ну принимай саму функцию, которую хочешь применить, в качестве аргумента, например:

(define flip
(lambda (f x y)
(f x y)))
222 1282707
>>282517
Тут написано, что ты можешь определить proc1 до того, как определена proc2. То есть ты можешь определять свои функции в любом порядке. Если g использует f, то необязательно определять сперва f, а потом g. Можно и наоборот, если тебе кажется, что так другим людям потом проще будет читать твой код. Хотя тебе лучше этим не злоупотреблять, определяй всегда все в том порядке, в котором оно используется. Кроме того, это позволяет тебе определять взаимно-рекурсивные функции. Вот представь, что у тебя есть какой-то очень хитрый алгоритм, в котором proc1 вызывает proc2, а proc2 в свою очередь вызывает proc1. То есть они обе друг друга вызывают, получается как бы кольцевая зависимость (уроборос эдакий). И вот то, что описано у тебя на пикрелейтед, как раз и позволяет такие функции\алгоритмы определять. А если бы схемка требовала, чтобы все используемые символы и функции были определены через define до того, как они используются, то такой алгоритм ты бы написать не смог в принципе. Смекаешь?
223 1282710
>>282625

>охуею разбираться со схемой


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

f(x, y, z) -> (f x y z)
function(x, y) { return f(x, y) } -> (lambda (x y) (f x y))
var x = 42; -> (define x 42)

Все, можешь идти решать упражнения.
224 1282719
>>282710
Это префиксная нотация в лиспе?
225 1282790
>>282707
Хорошо, суть я понял. Спасибо.
226 1282841
>>282719
Ну в жс как бы тоже префиксная: ты же пишешь f(x,y), а не x f y. Тут просто все униформно и нет никаких исключений для арифметики и прочей хуйни, все эти плюсы-минусы-умножения - это обычные функции. Так что арифметика записывается в префиксной нотации, да хотя одно из первых упражнений на работу с макросами - это как раз добавить инфиксную арифметику в язык, кек. Ну то есть сделать это легко, просто никому нахуй ненужно.
227 1282853
>>282841
А вообще схема где-нибудь пригождается кроме упражнений?
Может на ней можно веб скрапить как на петоне или еще что нибудь полезного делать?
228 1282979
Ну почему упражнения 2.49-2.52 такая боль ебаная, почему в современном издании не добавлены пояснения, какие библиотеки подлючать. Например, у меня все работает, кроме сраного draw-line. В итоге из 3-х часов, которые у меня занял раздел Picture language, 2 часа ушло на танцы с бубном вокруг библиотек и костылей для segments->painter.
230 1282997
>>282979

Двачую, бро. К сожалению, дальше там не лучше - десятка два упражнений в конце 2-й главы построены вокруг двух функций (put и get), которые не определяются и без них проверять решения очень неудобно или вообще невозможно. Хз зачем так делать, это пока единственный для меня минус книги.
231 1283080
>>282997
Ну так опишите эти функции.
232 1283091
>>283080

Но я не знаю, как их описать. Они должны работать с неким глобальным пространством имен. В книге на момент конца второй главы, ничего не говорится о том, как реализовать нечто подобное.
233 1283095
Оп опять возвращается. Не могу понять, что делают функции. Вроде внутрянка-то несложная, а что-то не так.

(define count
(let ([next 0])
(lambda ()
(let ([v next])
(set! next (+ next 1))
v))))

Там еще с описанием залупа какая-то непонятная. Максимум, что смог вытащить из книги, что это какой-то счетчик. Скажите по русски, что он делает и как вводить переменные, чтобы проверить, работает ли. Есть подозрение, что считает, сколько раз значение возвращалось, но это не точно.

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

>>283091
Ну попробуй открыть другие главы и через поиск на странице поискать эти два ебаных слова, может дальше будут. Я в своем учебнике порыл, нихуя не нашел, может чисто сикповская функция, составленная авторами книги, я хуй знает.
аа.jpg74 Кб, 593x497
234 1283097
Отвалилась картинка.
235 1283103
>>283095

Да не в этом дело. Они определяются в 3-й главе. Даже если бы не определялись вообще, естественно, я бы нагуглил, как их реализовать. Претензия именно в странном подходе - давать упражнения и скрывать часть информации, которая нужна для их выполнения.
236 1283105
Вот как-то так, через жопу, все и проходит. Нарыл этот учебник, который в принципе хорошо пошел. Потом уперся с подключением модулей, выебал блядь всю голову - месяц к этому не подходил. Подключили модули, спасибо анонам, начались проблемы с функциями, упрешься блядь опять в какое-то говно, пару дней не подходишь. Надеюсь на то, что сейчас эти две функции разберем, потом еще пару функций нужно будет, но там есть пару мыслей и думаю сам разберусь. Потом проверить работу тех функций, которые ошибки не выдавали, нормально ли они работают. И только потом, наконец-то, идти дальше.
237 1283107
>>283103
Чем-то слоника сейчас напомнил, лол. Но там вообще ебаная наркомания, от которой я обблевался. Сикп начинал в самом начале читать, тяжелая книга и даже дело не в том, чтобы я тупой и с нуля, с дуру, начал ее читать. Были моменты, типа одна из функций шмонает список выражений, пока не встретит отличный от #t и выводит #f, в противном случае выводит значение последнего выражения. Вот блядь можно было расписать, что функция сама по себе обязана вывести какое-то значение и если из большого списка все истинны, то выводит значение последнего, т.к. какое-то значение все-таки должно быть. Это логика, блядь, которую можно понять и очень легко запомнить. А у них в той фразе нет логики, а тупое наставление, которое нужно зазубрить. ЭТо сейчас мне очевидно и хуй с ним, подобную фразу я смогу понять, но с нуля это невозможно, как я думаю.
238 1283108
И сразу, в догонку, где взять ебаные описания для выражений set-car! и set-cdr! ?
По логике вводим список списков, а выводит в первом случае список из первых элементов, а во втором список хвостов списков. Только блядь у меня две ебаные функции на них упираются, а описания нет нихуя. Пошмонал 2 и 3 главы, нихуя нет.
239 1283448
>>282853
https://racket-lang.org - да можно и веб-сервисы писать, и скрапить, и что угодно как бы. Алсо, оФФициальный скриптовый язык gnu - диалект схемы: https://www.gnu.org/software/guile/
240 1283452
>>283095

>Не могу понять, что делают функции.


Ну так прочитай по частям. Смотри, ты определяешь count. Это функция, потому что у тебя там лямбда возвращается, так? Но вокруг этой лямбды есть еще let. И внутри лямбды тоже есть let, так? Разберись сперва, что происходит внутри лямбды. Ты сохраняешь текущее значение next в переменную v, потом увеличиваешь next на единицу, и возвращаешь v. То есть ты возвращаешь текущее значение next, а потом увеличиваешь next на единицу. Так? Вот смотри, а теперь вся суть: фишка в том, что твой next определен вне лямбды, точнее вокруг нее. То есть это как бы глобальная переменная (как если бы ты ее через define определил), состояние в ней сохраняется между вызовами функции. Попробуй прямо переписать код с (define next 0), и проверь, что все работает так же. То есть count - это функция, которая увеличивает глобальный счетчик. При каждом вызове она возвращает текущее значение счетчика и увеличивает его на единицу. НО из-за того, что в коде next определен не через define, а через let, ты никак не можешь его изменить, кроме как через вызов count. Если бы next был определен через define, ты бы еще в какой-нибудь другой функции мог написать (set! next 42), например, или просто в репле изменить его значение, потому что это глобальная переменная. А когда ты определяешь его через let (вокруг лямбды), ты никак не можешь его изменить, кроме как через вызов этой самой лямбды. То есть у тебя получается уже не глобальное (которое можно изменять хоть откуда), а локальное состояние, и четкий интерфейс, через который с ним можно взаимодействовать (только через твою функцию и никак иначе). Это называется инкапсуляция.
241 1283461
>>283108
https://blog.racket-lang.org/2007/11/getting-rid-of-set-car-and-set-cdr.html
tl;dr: из рэкета их удалили, потому что НЕНУЖНО.
Можешь сделать (require rnrs/mutable-pairs-6) и использовать set-mcar! и set-mcdr! (но это ненужно).

>>283105

>И только потом, наконец-то, идти дальше.


Ну, тебе уже на хтдп пора переключаться, если ты первые две главы прошел. Дальше ты там тупо не поймешь ничего, ибо это справочник (с коротким туториалом в первых главах), а не учебник.
242 1283515
>>283461
Ну вот смотри, у меня есть две функции.
Эта добавляет элемент в конце очереди - хуй знает, что имели в виду в учебнике, но описание такое.
(define putq!
(lambda (q v)
(let ([end (cons 'ignored '())])
(set-car! (cdr q) v)
(set-cdr! (cdr q) end)
(set-cdr! q end))))

Вторая функция удаляет первый элемент. ТАк понял, что есть список списков, он берет первый список и возвращает cdr его. И описание сет-кар

(define delq!
(lambda (q)
(set-car! q (cdr (car q)))))

Ладно, давай так. Мне может на эти две функции хуй положить и на set-car!, set-cdr! вместе с ними?

Сейчас я выписал функции, которые были в первых двух главах. Стремлюсь к тому, чтобы они нормально работали и чтобы идти дальше, вот и туплю, Блядь. Третью главу не открывал еще, но если там правда тупой справочник дальше по книге будет - смысл в ней и правда сомнительный.
243 1283518

>и описание сет-кар


На эту фразу внимания не обращать, скопировалась из моего текстового документа.
244 1283582
>>283515
Ну перепиши эти функции без set-car!, используя просто set! и обычные операции над списками. После этого переходи на хтдп, держа под рукой эту книжку в качестве справочника. Ты предыдущие задачи из первой+второй главы прорешал же?
245 1283584
>>283582
Я из первой все прорешал, из второй половину. Но это было месяца 2 назад. Вот думал добить эти функции, да перерешать вторую главу. Еще надо будет переосмыслить и осилить вот это -> >>283452 Сейчас краем глаза в итт сижу, пока некогда.
246 1283847
Вчера был выходной от погромирования, было просто некогда. А сегодня взял ликерчика малинового, короче тоже некогда :З
247 1283848
>>283847
Э, бля, чо галка где???
248 1283850
Че-то меня за алкоголизм ОПом больше не воспринимают, ну да ладно.
249 1283881
>>283850
Кек, абу тебя наказал за харам! Извенись!!1
250 1283886
Извиняюсь
251 1284088
Короче вариантов два: настраивал игру и отключил журнал событий винды; лисаблядь обновлялась. Сейчас журнал обратно включил, если галка не появится, значит виной ебаное обновление. уже протрезвел, но еще спать не ложился, лол
252 1284267
Как же много абстракций начинается после упр 2.72. Думаю главы 3-4-5 осиливать не буду.
253 1284282
Аноны, подскажите что там нужно поменять в настройках DrRacket чтобы схема запускалась?
254 1284388
>>284282
Эм, что?
255 1284397
>>284388
>>271806 (OP)
Я скачал IDE по ссылке с оп поста.
Установил.
Но судя по всему нужно настроить его, даже оп пост на это намекает.

>есть и поддержка Scheme, но её нужно включить


Поэтому и спрашиваю тут >>284282

> Аноны, подскажите что там нужно поменять в настройках DrRacket чтобы схема запускалась?

256 1284420
>>284397
language > choose language > other languages > legacy languages > R5RS

или скачать "sicp", доп. язык для СИКПа, типо как какой-то стандарт схемы вроде, установить это расширение и писать каждый раз
#sicp lang
257 1284422
>>284420
#lang sicp*
ебанулся совсем
258 1284477
>>284420 >>284422
Спасибо.
259 1284610
>>271806 (OP)
Честно ли разбивать процедуры на подпроцедуры?
Например 1.3 я разбил на 4 подпроцедуры, то есть в целом 5 дефайнов получилось.
260 1284634
>>284610
Хоть на 10 разбей, кому какое дело как ты дрочишь?
аа.jpg64 Кб, 594x503
261 1285180
Итак, оп опять вкатывается. галка ОР поди опять не поставится, по ходу виной обновление лисабляди
Решил перерешать все задания 2 главы. Столкнулся с проблемой, сразу оговорюсь, было чувство, что эту хуйню уже приносил, но прошмонал предыдущий итт - не нашел.
Есть функция length, которая считает количество аргументов, т.е. length (a b c) выводит цифру 3.
Дали задание определить функцию shorter, с помощью функции length, которая принимает два списка и выводит меньший из них; если списки одинаковы по количеству аргументов, выводит первый. Собственно, пикрилейтед. Нихуя не понял, почему работает криво, ткните тупым ебалом, что там не так.
Да, в ответах посмотрел, там решение через if - мол если больше, то одно значение, во всех остальных другое. Так намного проще, базара ноль. Просто интересно, почему мое определение работает через жопу. Причем первые два вычислило не правильно, а третье правильно. Сейчас сообразил, что можно было в две строки написать, просто в одной из них сразу поставить меньше или равно.
262 1285185
>>285180
Это потому что вы трахаете скобки.
263 1285270
>>285185
Там вроде разные скобки-то используются тупо для наглядности, не более. И поймал себя на мысли, что он всегда именно Y возвращал. Может просто cond не может возвращать какое-то значение, а его роль возвращать #t/#f, поэтому такая хуйня вышла?
264 1285286
>>285270
как можно быть настолько тупым?
ну это прям пиздец
у тебя скобок не хватает блять
у тебя условие езде >
=
<
а не (> (length x) (length y)) и т.д.
поэтому > ~ #t и выполняется всегда возврат y
265 1285295
>>285270
ты на вряд ли настолько тупой, скорее всего тебе не хватает концентрации, внимания и всего такого
сходи что ли к врачу, может что пропишет
без обид, ничего личного
266 1285310
>>285286
Да, дело правда было в скобках, спасибо.
>>285295
Я плюю на несколько дней, потом с головой ухожу, многое забываю за эти дни. Плюю, т.к. бывает упрусь в такую залупу, что все желание нахуй пропадает; другой вариант - просто некогда погромированием заниматься. Я в принципе задачи в последний раз решал месяца 1.5 назад, до того, как с модулями начал голову ебсти. Позабылось по ходу. Ну ничего, надеюсь без таблеток все-таки обойдется, лол. хочешь, чтобы меня опять положили? не-не, к докторам не пойду
267 1285707
Нид хелп.
Мне нужно сделать аналог функции bytes<?
Берем два байтстринга и проверяем в лексиграфическом они порядке или нет.

Хочется сделать это поптимально, по памяти и времени, чтобы быстро оче.

пришел к такому варианту - пик.
Но не уверен относительно того, как будет выделятся память в let выражении.
Не высрет ли оно это в кучу вместо стека?
Не вызовет ли лишнею манипуляцию со стеком?

А если я буду вначале a-val и b-val объявлять а потом делать set! не вызовет ли это каких-то странных побочных эффектов?
268 1285722
Оп на связь выходит. Короче вторую главу по возможности прорешал - последние 10 заданий не осилил, да и тут писали, что они уже сложные. Пошмонал учебник дальше, правда там разбор функций идет, а именно обучения нет.
ВОЗВРАЩАЕМСЯ НА ХТДП, ЕБАНЫЙ В РОТ
Добро пожаловать, снова, лол. Поглядим, что на этот раз выйдет.
269 1285741
Ньюфаг тред привел сюда.
Два вопроса. Можно ли на вашем языке и удобно ли будет сделать две игры - одну типо цивилизации, а другую - визуальную новеллу?
270 1285755
>>285741
тебя затроллели
271 1285757
>>285755
А че так? Я просто из депрессии хочу выйти, врач посоветовал заняться программированием, чтобы мозги напрячь.
272 1285759
>>285757

>из депрессии хочу выйти, врач посоветовал заняться программированием


Тебя затроллели.
273 1285769
>>285759
Я щас тебя затроллю. Мамкиным дилдаком в анус.
274 1285794
>>285757
SICP это троллинг ньюфагов типа боку но пико в анимаче.
Возьми гейммейкер лучше (на нем целый андертейл сделан), и начни с визуальной новеллы. Цивилизацию ты не потянешь.
275 1285796
>>285757

>из депрессии хочу выйти, врач посоветовал заняться программированием


Лол, это еще более крутой троллинг. Я как хуями в монитор ложил, когда не получалось, так ну его нахуй. ЧЕТЫРЕ ЕБАНЫЕ КНИГИ БРОСАЛ прежде чем нашел ту, которая более-менее пошла.
оп
276 1285848
>>285794

>типа боку но пико в анимаче


Офигенное же аниме.
277 1285850
>>285848
SICP тоже неплохая книга
278 1285887
>>284397
Racket (язык, который там по умолчанию) - это разновидность scheme. Ну типа как жаваскрип и es6. То есть тебе необязательно даже выбирать специальный язык для сикпа, там в любом случае отличия будут минимальные, типа какая-то функция по-другому названа или еще в таком стиле.
279 1285888
>>284610
Не просто честно, а так и нужно делать. И еще давать им понятные дескриптивные имена. За функции, которые не вмещаются на один экран, следует сжигать заживо. А большинство функций должны быть 5-10 строчек в высоту.
280 1285894
>>285707

>Не высрет ли оно это в кучу вместо стека?


>Не вызовет ли лишнею манипуляцию со стеком?


Анон, ты не на си пишешь. Я сходу не помню, но мне кажется, что стандарт не дает вообще никаких гарантий по поводу того, где размещаются объекты, и оставляет все это на усмотрение компилятора. Считай, что у тебя все boxed, короче. Если хочешь ебаться в байты, бери chicken scheme - оно генерит си-код, можешь потом сам открыть и посмотреть, куда оно аллоцирует, кек.

По факту, у тебя твои a\b-val будут просто поинтерами в кучу на стеке, инфа 99%.

Кстати, у тебя для двух пустых строк возвращает #f, хотя они в лексикографическом порядке, не?

>вначале a-val и b-val объявлять а потом делать set!


Говнокод же.
281 1285898
>>285722
Нормас. Не забывай весь код, который ты там видишь, пробовать в репле, ну и упражнения все решать. Алсо, кидай свои решения на гитхаб\пастебин, типа отчеты о прогрессе ну и хуями тебе покладут заодно если код хуевый, кек

>>285741
Лучше поиграй в spacechem или factorio. Для визуальной новеллы нужно рисовать, программирование тут не при чем.

>>285794

>SICP это троллинг ньюфагов


Нет ты.
15334811287440.jpg168 Кб, 722x960
282 1285915
>>285894

>Кстати, у тебя для двух пустых строк возвращает #f, хотя они в лексикографическом порядке, не?


Не, если строки равны должно возвращать фулсе.
В самой ракетке есть 3 операции bytes<? bytes<? bytes=?

Но для пустых таки все 3 должны фулсе вернуть. Если по логике, но ракетка таки для (bytes=? #"" #"") выдает #t
Это может логично если рассматривать строки как строки, элемент текста.
Но у нас же программные строки, да и не строки, и массивы байт, пустой массив байт как бы особый объект должен быть, сравнивать то мы хотим содержимое, а если содержимого нет, так и сравнивать нечего.

>Анон, ты не на си пишешь.


Да, но...

>Считай, что у тебя все boxed, короче.


Ну нафиг.

>По факту, у тебя твои a\b-val будут просто поинтерами в кучу на стеке, инфа 99%.


Поинтерами не хотелось бы, хотелось бы чтобы просто в калл стеке.

>Говнокод же.


Прости меня, мама, хорошего борщехлеба.
Не понимаю, как можно кодить практично, и чтобы не было лютого дерьмокода.
Как начнешь эксепшоны ловить - всё, код поехавшим становится.
283 1286077
>>285915

>Не, если строки равны должно возвращать фулсе.


А, тьфу, не меньше-или-равно же, а просто меньше, ты прав.

>Поинтерами не хотелось бы,


В смысле? Твой байтстринг в любом случае будет в куче лежать, если только компилятор не заинлайнит все что ни попадя. Опять же, я не знаю деталей реализации ракетки, но даже если бы и знал, думать о таких вещах в высокоуровневом коде не совсем правильно. Если хочешь контролировать каждый байт, пиши на расте, тут это просто splitting hairs получается.

>Как начнешь эксепшоны ловить


М О Н А Д Ы
М
О
Н
А
Д
Ы
284 1286431
>>1250402
Слив засчитан.
аа.jpg56 Кб, 705x403
285 1286506
Оп выходит на связь. Начал читать хтдп, в принципе сейчас я в том месте, с какого бросил в прошлый раз. Так-то продвигается и вполне осознанно, даже на 100% осознаю, что пишут, как это все работает и пр. По сути это только начало, но, в то же время, в прошлый раз это было осознанно процентов на 50, а потом вообще бросил, но сейчас иду вперед. Небольшой вопрос возник про функцию image-width. Собственно расшифровка пикрилейтед и больше нихуя не сказано. Вот для себя в текстовом документе я написал такое описание

image-width – принимает изображение (ширину, цвет и пр), а возвращает только ширину одним числом. если ввести несколько изображений, он складывает ширину всех и выводит общую одним числом. если внутри него overlay(несколько наложенных друг на друга), выводит бОльшую ширину, но не складывает, т.к. изображение-то одно

Просто это домыслы, что-ли, которые пришли в голову, глядя на примеры. Там именно текста с объяснением нет. Я все правильно описал?
286 1286519
>>286077

>М О Н А Д Ы


А что монады?
Как их готовить?
287 1286541
И самый прикол в том, что я книжку-то дропнул, осилив только третью часть пролога, ебаный в рот. Но тут подача тоже такая, своеобразная. Сразу хуярят пример, в нем 3 функции, ни одну из них я не знаю и сложновато было. После бросания этой книги, я слоняру ебаного вроде бы на треть прошел, потом две главы учебника другого прорешал и вернулся. Причем тот учебник действительно понравился, там полноценное объяснение функций, как они работают, примеры нормальные, потом сразу же задачи есть. Короче огромный лойс тому учебнику, он очень многое дал. А теперь и хтдп (по крайней мере пролог) идет вполне нормально.
оп
288 1286550
>>286506

>если ввести несколько изображений, он складывает ширину всех и выводит общую одним числом.


Чо? (imagewidth i) возвращает ширину изображения i, в пикселях. Все.

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

>Просто это домыслы, что-ли, которые пришли в голову, глядя на примеры.


Ну так ты не просто гляди на примеры, а открой дррэкет да поэкспериментируй.
290 1286560
>>286550
Понял, спасибо. Там про сложение я функцию beside че-то мимо глаз пропустил, а она-то в ширину изображения слепляет и получилось, мол сложение. Хорошо, понял все.
15334811287440.jpg168 Кб, 722x960
291 1286565
>>286554
У меня же racket
аа.jpg96 Кб, 823x436
292 1287712
Оп на связи. Продолжаю воевать с прологом htdp. Дали задание посадить ракету на бетонный блок, который находится на 10 пикселей от края. Вчера весь вечер ебался и сегодня часа 2 убил, чтобы все-таки сделать, как надо. Понял, что все было проще, чем я думал, но все-таки сделал. Заебись, успех.
293 1287980
>>271806 (OP)
Vi che ohooeli tut anime blyad postit'?
294 1287986
>>287980
☐☐☐☐ - ☐☐ ☐☐☐☐☐ ☐ 2 ☐☐☐☐☐☐
аа.jpg22 Кб, 720x197
295 1288873
Оп рапортует. Пролог успешно осилил, все заебись. Начал 1 часть штурмовать, все хорошо, расписываю какие-то функции. Вопрос возник: что делает функция (numerator x) ? Переводчик говорит "вычисляет числитель рационального". Поначалу подумал, что числитель дроби возвращает, методом тыка понял, что это не так. 34/443262 он возвращает 17 почему-то. а 34/443263 возвращает 34
296 1288988
297 1289023
>>288873
34/443262 приводится к 17/хххххх
аа.jpg23 Кб, 381x473
298 1289053
>>289023
Ну у меня такое выдает. Так что она делает-то эта функция? Пробовал 34 с другими знаменателями, в большинстве выдает 34.
299 1289063
>>289053
Числитель выводит, очевидно
34/443262 это 0.00007670407, что эквивалентно 17/221631
Нахуй тебе сикп, читай лучше школьный учебник по арифметике
300 1289069
>>289063
Короче если можно сократить числитель и знаменатель, он их сокращает и выводит числитель. А если они не сокращаются, он просто выводит числитель. Так?
Дело не в арифметике, а в попытке понять логику, методом тыка не удалось, вот сюда и принес.
Насчет сикпа - я хтдп читаю, лол.
301 1289070
>>289069
В функцию приходит не твоя дробь, а
302 1289073
>>289070
0.00007670407
303 1289077
>>289070
Ну если поделить, Это понятно, сколько будет. Короче понял, выводит наименьший числитель, если меньше не сделать, выводит его. Спасибо.
304 1289082
>>289077
Это все в документации написано, между прочим
305 1289084
>>289082
Ну выше скрин я постил, большего не увидел по этой функции.
306 1289087
>>289084
Плохо искал
307 1289089
>>289087
Ну в любом случае ответ я получил, спасибо.
308 1289220
>>288988
бамп
309 1289341
https://docs.racket-lang.org/tools/drracket_language.html?q=drracket:language:create-executable-gui#(def._((lib._drracket/tool-lib..rkt)._drracket~3alanguage~3acreate-executable-gui))
Какой здесь должен быть первый аргумент? Какой-то объект? А какой именно?
Тупой хочет стать программистом. 310 1289365
Здраствуйте, аноны. Я очень тупой человек, который не знает простейшие элементы математики, которые люди проходят в 5-9 классах в школе, но хочу попробовать себя в программировании. Так же прочитал где-то, что для программирования ещё важна физика, чего я раньше не слышал, физику я тоже не знаю от слова совсем. Возможно ли с такими знаниями суметь в кодинг? Пока что почитываю SICP.
311 1289395
>>289365
С такими знаниями нужно читать школьные учебники, а не сикп почитывать, это тебе не художественная литература, это курс.
312 1289435
ОП самого первого треда доволен, что тред не забросили, молодцы.
313 1289441
>>289341
здесь же есть шарящие за ооп в ракете, помогите ну
314 1289449
>>289441
Судя по описанию родительское окно нужно передавать
315 1289452
>>289449
если сначала пишу #f, то всё нормально, пока не нажму на кнопку для создания экзешника
sage 316 1289613
>>271806 (OP)
Аноны, помогите понять смысл решения задачи про монетки.
Я не прошу объяснять мне код, он простой.
Мне скорее интересна логика почему

>the number of ways to change amount a using all but the first kind of coin,


плюс

> the number of ways to change amount a - d using all n kinds of coins, where d is the denomination of the first kind of coin


Заранее извините если с разметкой намудрил
sage 317 1289616
То есть как пришли к такому решению в книге вообще не говорится. Дается задание и сразу ответ.
319 1290593
>>290491
Спасибо, хорошее объяснение.
Итеративные решения к некоторым заданиям довольно сложно подобрать. Даже с 1.11 где все довольно просто и то пришлось рисовать на листке прежде чем понял. А для того же count-change пока не получается, так что оставлю его на потом, через какое то время вернусь и появятся идеи.
320 1290808
Аноны, а если прорешать и понять хтдп от корки до корки, как быстро потом удастся сикп прорешать?
321 1292210
Можно на Racket как-то обрабатывать систему сообщений Windows?
322 1292841
Gnu guile кто-нибудь пробовал?
323 1292845
Стоит покупать: https://www.ozon.ru/context/detail/id/5322055/ ?
1-176-768x818.jpg82 Кб, 768x818
324 1293769
Дорешал вторую главу. Мой разум остр, как бритва. Мои руки точны, как движения охотящегося тигра.
325 1294673

>SICP Anime Opening


wwwwwww
326 1295114
>>293769
Это Виктор Цой?
327 1295161
>>295114

Роберт Викторович, он самый.
1310750148.png4 Кб, 468x467
328 1295163
Работаю джава-программистом уже 5 лет, сразу после универа устроился. Мидл, зп 130к в Питере.
Скачал сикп и не осилил первую главу. Почитал тред и увидел, как все пишут, мол, это книга для студентов. Улетел на жопной тяге на орбиту. Вы меня затроллили, молодцы.
329 1295171
>>295163
А хуле ты хотел, я свои конспекты по диф.геому тоже еле осиливаю, хотя когда-то по ним сдавал экзамен.
330 1295181
Есть ли что-нибудь подобное на Си?
331 1295196
ОП рапортует. Короче читаю хтдп, первую главу прошел на 40%, энтузиазм закончился. В принципе все получается и идет нормально, но заебался я что-то. Возьму перерыв неделю-две, как получится, может месяц. Потом дальше пойду.
332 1295198
>>295196
Да, по объему если посчитать, то это я за 2 недели столько изучил. Если провести какую-то параллель, грубо говоря к апрелю я должен книгу добить. Есть мысли, что дальше сложнее и медленнее, но корректировку на этот случай я сделал. Короче поглядим.
333 1295203
>>295196
ОП, так как ты обе книги читал и решал, скажи в чем принципиальная разница между ними? То что одна "легкая" а вторая "сложная" это я знаю, но чем-то еще они отличаются?
Пока решаю 3 главу сиспа, впечатление довольно двоякое. Не сказал бы что сложно, но заебывает.
334 1295206
>>295203
Я сикп начал читать и решать, в результате бросил, т.к. не пошло. Потом хтдп начал решать, тоже не пошло и бросил. Дальше было пару книг, которые более-менее пошли, теперь на хтдп вернулся и все-таки пошло, блядь. Мне сложно судить, т.к. я их не прорешал же. Ну и да, для себя вывел, что одна сложнее другой, причем намного сложнее. А больше мне сказать нечего, извиняй.
335 1295207
>>295206
А если не секрет, куда ты стремишься (пройти собеседование, прорешать всю книгу)? Или просто решаешь для того чтобы решать?
336 1295208
>>295207
Я хочу стать программистом. Отзывы в интернете говорят о том, что язык-схема хорош для начинающего. Плюс хтдп охуенная книжка, чтобы понять логику программирования. Она же на том же языке и написана. Плюс сикп одна из лучших книг, которая делает код охуенно чистым и пр., опять же сикп на том же языке программирования. А на любой другой язык можно переучиться за 3 месяца. Вот и думаю по такому пути пройти - изучить эти две книги, потом изучить вакансии, выбрать язык, выучить его и идти на работку. Хотя есть мысли, что сикп может не потяну или будет много сложных задач, на которые просто время будет жалко тратить. Даже сейчас в хтдп сталкивался с задачами, которые я прекрасно понимаю, как сделать, но просто время тратить не хотел, путь даже это были бы сраные 5 минут. Хотя таких задач было мало, и 90% я все-таки прорешивал.
337 1295212
>>295208

>схема хорош для начинающего


С самого начала задаюсь вопросом, зачем автор выбрал схему? Почему не хаскель, на котором даже сайты можно писать, а также графические интерфейсы и многое другое?
338 1295214
>>295212
Хуй его знает, нам-то, простым смертным, остается только гадать. Ну еще так можно сказать, автор-то явно свое дело знает куда лучше, чем мы с тобой. Ему виднее, наверное.
339 1295635
>>295212

>даже сайты можно писать, а также графические интерфейсы и многое другое?


Racket и GNU Guile. Это умеют.
340 1296241
Упражнения 2.81-2.86 загоняеют меня в депрессию. Думаю о суициде. Бросить всё и идти джаваскрипт учить?
341 1296510
>>296241
Делай, что нравится. Потом можешь вернуться и продолжить.
342 1296772
>>271806 (OP)
Есть ли смысл читать SICP если мне не нужен Lisp?
343 1296777
>>296772
Есть.
344 1296778
>>296777
Нуу триплу стоит довериться)
proxy.duckduckgo.com.png801 Кб, 900x900
345 1297385
>>271806 (OP)

>Эта книга посвящается, с уважением и любовью, духу, который


живет внутри компьютера.

Лайк
346 1297679
>>296772
>>271806 (OP)
На самом деле сисп переоценен. Хз зачем его тут форсят, но если хотите подтянуть уровень читайте Кормена.
Он объясняет всё на псевдокоде, который очень легко перенести на питон, жаву, жаваскрипт и почти любой другой яп.
Сисп не плохая книга, но он устарел лет так на 30.
В 2к18 есть гораздо лучше, современнее и актуальнее.
Хотя борщехлебам без разницы что учить, хоть сисп на схеме 70 годов прошлого века, хоть хаскель где даже с опытом фп хуй найдешь работу.
347 1297707
>>297679
Кормен - это книга про алгоритмы, а Сикп – про некоторые идеи, которые стоят за компьютерными программами вообще. Как одно может заменить другое?
Если есть задача освоить популярный ЯП, нужно брать книжку по этому ЯП.
348 1297757
хочу начать изучать C++, новичку стоит с него начинать? И подойдёт ли для этого книга SICP? С чего начать вообще стоит?
86b587ef7593f1a65596f8fb928548f2.jpg39 Кб, 500x485
349 1297872
>>297385

>proxy.duckduckgo.com.png

350 1297942
>>297757
С хаскеля начни, затем С++ и только затем сисп.
351 1298042
>>297942
И тем самым учить 3 языка, молодец.
352 1298605
>>297679

>устарел лет так на 30.


>сисп на схеме 70 годов прошлого века


Кто тебе мешает использовать Racket или Guile?
353 1298608
>>297757
Lua + sicp, C, C++.
354 1299110
>>298608
Чем хороша луа? Нахуй нужна она? Хаскелль же есть
355 1299137
>>299110
Двачую этого, нахуй луа вообще нужна?
Скриптики всякие на змее заходят, по скоростям луа тоже сосать не даёт, плюс какие-то ебанутые загоны типа индексации массивов с единицы.
356 1299172
>>298042
>>297942

>sicp


>язык


Теперь я знаю кто обитает в этих тредах
357 1299176
>>299110

>луа


Писать моды для факторио
358 1299178
>>299176
И майнтест, лол
359 1299523
>>299172
Мудачье, типа тебя, которое в глаза долбится :З
360 1299524
>>299110
Lua хорошо в связке с C работает. Встраиваемый язык, можно программировать различные игры и nodemcu. Есть библиотеки для создания игр.
361 1299614
Хелп, дашчан перестал постить, уверяя меня в том, что я ввожу неправильную капчу! пробовал раз пятьдесят
362 1300952
>>271806 (OP)
Скажите дауну, как в лиспе выводить текст?
363 1300956
И вдогонку вопрос: как вернуть сразу 2 значения? Например, в случае вывода двух корней квадратного уравнения.
364 1301170
>>300952
1) "Text"
2) (require 2htdp/image)
(text "Text" 18 "black")
3) (require 2htdp/image)
(text/font ... (подробнее ищи на официальном сайте языка))
4) и т.д.
---
(define (f x)
(list (+ x 5) (+ x 10)))
То есть либо через список, либо через структуру
(define-struct a (b c))

(define (f x)
(make-a (+ x 5) (+ x 10)))

Ну и по идее различные более изощрённые варианты, к примеру, запихать их в строку и вывести как текст, смотря что тебе нужно
Возвращать у тебя функция всегда 1 параметр будет
365 1301173
>>301170
ещё добавлю, что у списков много различных видов записи, ну можно ещё через пару вывести, это такой "недо"-список
366 1301222
Стоит ли подсматривать ответы, если не могу решить или пропускать и решать дальше, а потом возвращаться?
Как делаете вы?
367 1301270
>>301170
>>301173
Спасибо, попробую.
368 1301578
>>301222

Я обычно пропускаю, если сильно долго не могу сообразить и иду дальше. Потом просто время от времени возвращаюсь. Ответы на нерешенные задачи смотрел очень редко, что-то из первой главы, где нужна была математика, не помню уже точно.
369 1302061
>>297679
Спасибо, анон.
370 1305935
Бамп, что-ли.
371 1306645
>>297679

>Сисп не плохая книга, но он устарел лет так на 30.


Это книга про программирование вообще. Такое никогда не устаревает. Два чудика, начитавшись СИКПа, изобрели язык R.
372 1307563
>>297385
Топавая хайповая фраза
373 1307629
Где можно почитать про связь между изучением SICPа и развитием психических отклонений?
374 1307639
>>307629
в этом итт треде, конечно же
375 1307832
Дошел до реализации дека. Че-то мой энтузиазм по поводу лиспа поугас. Дек - элементарная вещь, которая реализуется обычным двусвязным списком на си за 10 минут. Тут я уже 2 часа сижу, рисую долбаные стрелочные диаграммы и пытаюсь понять, как же сделать дек с O(1) вставкой/извлечением с обоих концов на этих car и cdr.
С введением присваивания лисп мигом утратил свое очарование и стало видно, насколько он не пригоден для программирования в императивном стиле. Хотя я пока не проникся или чего-то не понял.
376 1307833
>>307832

хотя может

быстрофикс*
377 1307844
>>307832
На Лиспе тоже элементарно, просто нудно. Если тебе это сложно, то ты еще чего-то не понимаешь.
Но это все баловство. Настоящий дек на массивe делается.
378 1307845
>>307832
Деструктивными операциями это делается.
379 1308074
Видимо, вчера я слишком поздно сел за сикп и голова уже не варила. Сегодня дек никаких проблем не вызвал. Реализация не совсем красивая - в идеале надо выделить двусвязный список как полностью самостоятельный объект, создавать его в deque и хранить дополнительно два указателя на первый и последний элементы для обеспечения O(1). Но мне сейчас лень.
https://pastebin.com/cwAz6j3L
380 1309539
Тоже самое, но без скобочек есть? сикп - матан, htdp - вода и скобочки. За що?
381 1309757
в чём смысл sicp если в ней используется lisp?
382 1309896
Как написать многопоточную программу на ракетке?
383 1309950
>>309896
на хаскеле ебани
384 1310210
начал читать сикп недавно
обьясните мне пожалуйста, мне прямо с самого начала надо жестко вчитываться в книгу или можно спокойно глазами проводить?
385 1310219
>>310210
на толчке полистать норм книга)
386 1310355
Суп, программач.
SICP - это же, получается, просто учебник по scheme?
387 1310360
Че думаете, посоны, хорошая книга?
https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf
388 1310362
>>310360

Или устарело?
389 1310640
>>310355
Есть вроде новая версия на питоне, так что нет.
390 1310645
>>310640

>новая версия на питоне


Нет, на питоне сделали новый курс на замену, и он совсем другой - заточен под современные айти реалии.
image.png944 Кб, 1280x720
391 1311766
ОП, живой?
392 1311995
Приветствую, аноны. Подойдёт ли данная книга совсем для новичка? Планирую комплексно вкатываться в программирование, интересно всё, что с ним связано, однако на данный момент являюсь полным дубом. Пойму ли я хоть что-то? Или нужно начинать с чего-то более простого?
393 1312041
В шапке есть книга на русском, стоит начинать учить если я не знаю англ или пиздовать в 1с тренд???
394 1312043

>Хьюго Дум хочет построить квадратор



Не знаю почему, но эта фраза вызвала у меня неконтролируемый хохот и я смеялся несколько минут.
395 1312089
>>311766
Да, живой, только нихуя не делаю. Точнее другим все занят, но думаю на следующей неделе домучаю все свои дела и вернусь к изучению htdp. Короче перерыв себе сделал месяц+неделя.
>>311995
Ну мне не подошла, во втором посте лично от себя совет давал, с чего начать.
>>312041
Я тоже инглиша не знаю, сижу с переводчиком. Бытует мнение, что для вката инглиш не сильно и нужен, а если вкатишься, параллельно выучишь.
оп
396 1312115
>>312089
Да, книгу, которую я советовал, там только первые 2 абзаца. Ну а так можно htdp попробовать, может сразу пойдет, но у меня не пошла.
397 1312118
Я не понимаю, зачем нужны кадры в модели вычислений с окружениями. Ведь значения переменных и так содержаться в окружениях. Допустим, пример из 3.2.3:

>Для начала мы конструируем кадр, в котором amount, формальный параметр W1, связывается со значением 50



Зачем? Мы ведь уже сконструировали окружение (при вызове функции), в котором amount связан с 50. Зачем нужна сущность "кадр", если есть сущность "окружение"?

Можно от противного: покажите мне пример, где в окружении присутствует несколько кадров и в этом есть необходимость.
398 1312390
>>312118
https://ideone.com/oKdSCx
Пример простой и надуманный, но, я надеюсь, ты уловишь суть, подумав, чем отличается x как аргумент func от того x, который внутри let, и от того x, который должен быть после let (оставляю тебе последнее в качестве самостоятельного упражнения).
399 1312478
>>312390

Но ведь при вызове let будет создано новое окружение, в котором x связан со значением "аргумента" let (вообще, насколько я помню, let - это синтаксический сахар для вызовы lambda). Код let связан со своим окружением, код func - со своим. Когда код let закончит выполнение, мы вернемся в код func и будем пользоваться значением x из его окружения. Кадр в каждом из окружении по-прежнему один. Или я не прав?
400 1312488
Это наверное очень тупой вопрос и я покажусь лютым раком, но есть возможность переложить материал из SICP на BASH и кресты?
401 1312881
Свобода! Равенство! Ссылочная прозрачность!
402 1312976
>>312488
Все возможно, пробуй.
403 1312984
>>312118
Можно рассматривать make... как создание новой процедуры с ее собственным окружением, а можно как создание нового окружения с ссылкой на процедуру, и вот это второе называется кадром.

Тут скорее вопрос конкретной реализации, видимо, их лисп был так устроен.
404 1314297
ОП рапортует. Доделал все свои дела, с завтрашнего дня с отдохнувшей головой продолжу обучение.
405 1314955
>>295208

>А на любой другой язык можно переучиться за 3 месяца.


После СИКПа за неделю можно освоить любой язык.
406 1314957
>>295212

>С самого начала задаюсь вопросом, зачем автор выбрал схему? Почему не хаскель, на котором даже сайты можно писать, а также графические интерфейсы и многое другое?


На Racket можно писать тоже самое.
407 1314959
>>297679

>На самом деле сисп переоценен. Хз зачем его тут форсят, но если хотите подтянуть уровень читайте Кормена.


>Он объясняет всё на псевдокоде, который очень легко перенести на питон, жаву, жаваскрипт и почти любой другой яп.


СИКП - построение абстракций, архитектура, и немного алгоритмы. Кормен - только алгоритмы. Алгоритмы без абстракций - это дырка от бублика.

>>297679

>Сисп не плохая книга, но он устарел лет так на 30.


Рассмешил. До сих пор никто не создал лучшего языка и руководства.

>>297679

>В 2к18 есть гораздо лучше, современнее и актуальнее.


А тут по подробнее. Покажи ка нам что есть лучше.
408 1314961
>>310355

>SICP - это же, получается, просто учебник по scheme?


Нет, это учебник по построению программ.
409 1314964
>>312118

>Я не понимаю, зачем нужны кадры в модели вычислений с окружениями. Ведь значения переменных и так содержаться в окружениях.


Почитай про стек и стековый кадр

https://ru.wikipedia.org/wiki/Стековый_кадр
https://habr.com/company/smart_soft/blog/234239/
410 1314965
>>314297

>ОП рапортует. Доделал все свои дела, с завтрашнего дня с отдохнувшей головой продолжу обучение.


Завтра скажешь себе, что завтра начнешь. И так до бесконечности. Рекурсия.
411 1314967
>>312488

>есть возможность переложить материал из SICP на BASH и кресты?


Лисп (Scheme, Racket) - может выступать как псевдокод. По сути он и есть псевдокод. Поэтому его код легко переводить в любой другой. Только проблема в том, что в баше нет функций высшего порядка (а может и есть, я не в курсе).
412 1315012
>>314955
Ничего не скажу на этот счет, я не спец. Единственное, что команды-то выучить удастся-ли за такой короткий срок. Но поглядим, время покажет. Хотя начал склоняться к тому, чтобы htdp изучить, а sicp может и нахуй послать. Или в свободное время потихоньку прорешивать. Все-таки жизнь идет и саморазвиванство тоже должно иметь какие-то пределы и не в ущерб зарабатыванию денег.
>>314965
Да почему, я 3 недели тогда ебашил без выходных и праздников, за это время мозг закипел и дел накопилось. Сейчас все разгреб и мозги отдохнули. Если бы ты читал предыдущие треды, ты бы понял, что я упертый мудак и сдаваться это не про меня.
413 1315067
>>315012
В СИКП сложно только задачи решать. Темы первых 2 глав не сложные. Работа с функциями. Без этого сам не научишься из функций строить абстракции. А без этого не научишься строить модульные программы. Так какое тогда может быть зарабатывание денег.
414 1315081
>>315067
Ну у меня htdp в планах целиком осилить, там разве этого не будет?
415 1315104
>>315081
Не читал, не знаю. Скорее всего нет. Тем более СИКП есть на русском. Можно лучше понять идеи, которые авторы туда вложили. Идеи эти на самом деле простые, но мощные. Например интерпретатор в 100-200 строк в 4 главе.

HTDP как мне кажется уже не то. Все современные идеи глуповатые, чрезмерно переусложненные. Код ради кода. Сейчас такое время, инженеры уже не те, они думают, что чем сложнее тем круче. Но все ведь наоборот. Самые крутые решения это простые. Простое легко изменять, оно надежное, мощное, не подверженное крушению. В СИКП простые и мощные решения.

Это видно по современным языкам программирования. Java, C#, C++, Rust, Python, - все они чрезмерное неоправдано переусложнены. То есть их навороты не решают задач, а только приносят лишнюю сложность. Получается что инженеры не решают проблемы, а создают. Где это видано чтобы было так. Инженеры должны бороться со сложностью, с проблемами, а они наоборот их создают.

Поэтому Лисп всегда будет мощнейшим из языков. Ни один язык не достиг такой мощи при такой простоте. СИКП придерживается той же философии что и создатели Лиспа. Что-то подобное сейчас найти почти невозможно.
416 1315124
>>315081
мне хватило первых 3-ёх глав, дальше слишком нудно
но об этих 3-ёх не пожалел ни капли
417 1315126
>>315081
сикп начал, много нравится из того, что там дают, но
матана слишком много, поэтому пока остановился, мб забью, мб продолжу, от такого кол-ва математики воротит
можно же рекурсии различных типов объяснить без матана, как в хтдп том же
418 1315149
>>315104
Я сикп пробовал, для меня он слишком сложный, поэтому пока htdp.
>>315124
Ну я первую пока процентов на 40 прошел, поглядим, что дальше будет.
>>315126
Ну я сикп бросал, Т.к. вообще что-то не шло, абсолютно. С математикой по жизни проблем вроде не было, но позабылось уже; одним словом поглядим.
419 1315157
>>315149
У меня тоже не было проблем с математикой, но сикп с первого раза тоже на зашел. Его вообще нужно перечитывать регулярно. Как писал Пол Грэм, что перечитывает сикп уже 15 лет, и до сих пор находит новые знания.
420 1315178
>>314964

Я знаю, что такое стек и стековый кадр. Ты хочешь сказать, что под кадром они имели в виду просто кадр стека? Почему, блин, тогда нельзя было так и написать?
421 1315229
>>315178

>Ты хочешь сказать, что под кадром они имели в виду просто кадр стека?


Да.

>>315178

>Почему, блин, тогда нельзя было так и написать?


Это мне не известно. Может в оригинале так и есть, просто перевод такой.
422 1315253
>>315229
>>312984
>>312390

Спасибо, аноны, что помогли разобраться. СИКП-треды: доброта и взаимопомощь.
423 1315937
Что SICP подразумевает под словом "абстракция"? Она упоминается на протяжении всей 2 главы, но я все никак не могу в полной мере понять, что это такое.
Может мои знания из других ООП языков мне мешают понять?
424 1315945
>>315937
Абстракция - это сокрытие деталей реализации: Петян может использовать программный модуль Васяна, не зная как он устроен, только зная АПИ. А Васян может как угодно перепелить реализацию своего модуля в любой момент, скажем, на более быструю, и на коде Петяна это никак не отразится, если, конечно, Васян не долбоёб и не закомитит баг.
425 1315948
>>315178
Потому, что это не стековый кадр. Хотя и очень похоже.

У них кадр - это кусочек окружения. Нода в дереве кадров. Все кадры собираются в дерево, и кадр+все вышестоящие по дереву кадры - это окружение.
426 1316013
>>315937

>means of abstraction, by which compound elements can be named and manipulated as units



В самом первом пункте первой главы написано. Проще говоря, тебе не придется каждый раз писать код для совершения какого-либо действия. Например, извлечения квадратного корня.
427 1316045
>>316013
>>315945
То есть инкапсуляция.
Это я понимаю. Но слово мелькает в каждой второй строчке, от чего мозг начинает немного плавиться.
А может это я тупой и нужно читать более вдумчиво. В любом случае спасибо
428 1316143
>>315937
Смотря в каком контексте применяется. В общем случае абстракция это способность представлять сущности в формальном виде. Программирование как и математика это система абстракций. Сущности, процессы, модели, - представляются в них в формальном виде, в котором можно рассуждать о них. Бывают уровни абстракции. О каждом предмете или явлении можно рассуждать на разных уровнях абстракции.
429 1316144
>>316045

>инкапсуляция


Нет, инкапсуляция - это простое объединение данных и кода в единый компонент. Что, вобщем-то не обязательно обеспечивает сокрытие деталей реализации.
430 1316147
>>315937

>Что SICP подразумевает под словом "абстракция"?



Абстрагирование - https://www.youtube.com/watch?v=ZguVPNvmfzY
431 1316193
Еще один рапорт от ОПа. Ну че, 2 дня более-менее упорно сижу и разбираюсь, дело идет. Многие вещи начинаю вспоминать, ну не сильно-то и позабылись, но тем не менее. Полон энергии и энтузиазма, все заебись :З
432 1316326
ох так приятно что аниме стоит.. мм.. спасибо
аа.jpg79 Кб, 582x588
433 1316929
Итак, ОП вкатывается опять. Как заставить этого ебаного кота двигаться слева направо с помощью big-bang? Я поначалу сделал через cond и animate, в принципе получилось. Но по заданию надо именно через ебаный big-bang написать. Нажимаю run - выделяет черным функции, мол все верно. Пытался задать переменную ws, ну мол, чтобы изначальное положение этого блохастого выбрать, тоже нихуя.
Проблема в приципе в том, что образца готовой программы по тексту не было. Объясняли только, что может этот ебаный big-bang в себе содержать, а как в общем сдружить его с программой - нихуя нет. Ну или я правда тупой и чего-то не понимаю.
434 1316932
Да, я понимаю, что там чушь написана и нужно прописать, сколько пикселей в так двигается, но это пробовал, хуй там. Пытался формулу выше куда-то засунуть, ну мол чтобы возвращало с измененным числом пикселей и постоянно отнимало, тем самым двигая кота, тоже не получалось. КОроче шаблон для работы пока такой.
436 1316947
>>316929
big-bang это великая функция, я через неё очень много прог написал интересных
437 1316950
>>316944
>>316947
Спасибо, сейчас буду разбираться.
аа.jpg90 Кб, 592x578
438 1317083
Итак, разобрался я, как это делать. Конечно в тексте учебника как-то то-ли непонятно описано, то-ли я туповатый. Ну в любом случае начало этого big-bang положено и к нему допиливать еще какие-то функции, будь то реакция на мышку или клаву, думаю труда не составит.
Пытался эти 2 течпака отключить, перестает читать функции big-bang и прочие, хотя в предустановленных, в среднем экране настроек они висят. Да и хуй с ним, работает, да и ладно.
Еще раз спасибо, что бы я без вас делал. Хотя оглядываясь назад, вспоминаю, как хуесосили, что я троллю, мол тупым таким нельзя быть, когда простых вещей не понимал. А тут уже хотя бы что-то соображаю, значит труды, в т.ч. и ваши, не пропадают и приносят пользу.
439 1317385
Всем привет, давно у вас тут не появлялся. С лета примерно.

>>317083
ОП, все превозмогаешь? На какой главе htdp сейчас?

И, кстати, где там анон, который за месяц хотел sicp осилить? Помню, он распечатывал себе книжку даже
440 1317409
>>317385
Здоров. Да, все превозмогаю. Я не ОП самого первого треда, я ОП второго и последующих. Сейчас примерно в середине 1 главы, все идет хорошо. Правда предыдущие 1.5 месяца ничего не делал, т.к. мозги закипели, когда 3 недели каждый день изучал. Вот несколько дней назад опять приступил к обучению.
Насчет того, кто хотел за месяц осилить, что-то не видно его.
441 1317530

>(define integers (cons-stream 1 (add-streams ones integers)))



Это пиздец, уже час не могу понять, почему это работает. Дебаггер что ли искать...
442 1317561
>>317530
check-expect – тестировщик написанной программы, в конце пишем (check-expect (имя написанной программы 32) 0) после имени переменную ввода, вторая переменная, это сколько должно получиться (уже готовые значения писать) и он выдаст, правильно ли программа сработала
Ну у меня есть в конспекте вот такая хуйня, не знаю, поможет ли в твоем случае.
оп
аа.jpg115 Кб, 591x507
443 1317616
ОП опять со своими говнопроблемами. Не могу сделать этот светофор ебаный. Задал полотно, задал размер, прозрачность и цвет этих ебаных цветных кругов. Написал функцию рекурсии через cond, чтобы если цвета совпали, перешло дальше и включило другой цвет. Прописал время 2 секунды для тика. НИхуя блядь, требует функцию для on-tick. Поясните долбоебу, какую функцию я там могу написать? Ладно с котом в предыдущем примере я все понял, там пиксели прибавляем или отнимаем, а как заставить его картинку поменять? Пробовал целиком cond скопировать - хуй на рыло, перерыл все функции big-bang, тоже нихуя путевого не увидел. Блядь, я не знаю. Причем самое обидное в том, что по тексту сейчас разжевывали принцип работы cond, просто как для конченных долбоебов и все было абсолютно ясно изначально, т.к. раньше все это было и давно уже с его участием примеры решал. А в упражнении заставляют делать то, что хуй знает, с какой стороны подойти.
Вот сидел реально не один час, прежде чем сюда это тащить.
https://pastebin.com/9dhT58qB на всякий сюда скинул
444 1317620
Да, там круги включаться должны один вместо другого, тупо в одном квадрате, без понтов, типа красный сверху, желтый посередине и пр.
аа.jpg40 Кб, 461x398
445 1317675
Короче сижу и до сих пор ебусь, блядь. Уже методом тыка тупо все перепробовал, что можно было. По-идее переменная это Х, т.е. текущее состояние, грубо говоря цвет круга на дополнительном экране. Пытался сделать формулу в on-tick, чтобы сравнить состояние экрана с каким-то положением cond, а хуй на рыло. Получается так, что сравниваю "red" и yellow (обозначения сейчас с потолка взял, не в этом суть). Пытался сравнить через string=? - не дает, т.к. yellow это изображение, со строкой "red" сравнить не выйдет, грубо говоря разные типы данных. По тому же принципу пытался сравнить через image=? - та же хуйня, разные типы, теперь yellow подходит, а "red" не подходит, т.к. это строка. Думал хоть если сравню, если выведет #t или #f, будет ясно, скакнет на следующий круг или нет, а тут даже сравнить не выходит. Заебало, блядь, реально бесить начинает. Там вот настолько подробно cond перед этой задачей расписали, просто для долбоебов конченных, собственно пикрилейтед, хотя и так оно очевидно изначально. Но зато сразу после этого примера предлагают ВЫСРАТЬ ФОРМУЛУ и даже образца нет никакого, за счет чего будет сцену переключать - а хуй его маму знает. Ладно, пойду я спать, всю ночь просидел, блядь, уже бошка нихуя не варит и нервов никаких нет.
аа.jpg121 Кб, 583x524
446 1317684
ПОЛУЧИЛОСЬ БЛЯДЬ!!!
Сука, методом тыка. Ладно, потом буду разбираться, почему именно так. Отбой тревоги, короче говоря. Ну и да, дорогу осилит идущий, лол.
447 1317764
>>317409
Да я сам из-за завала на работе остановился на 3 главе SICP.
Вот, думаю, с нового года засесть за него снова. Мне лиспы нравятся. Хоть какое-то отвлечение от js-рутины.

Только запамятовал, у тебя какие цели-то? Вот пройдешь ты HTDP, дальше что? Стремишься куда? На работу устроиться или так, просто для себя?
448 1317976
>>317764
Хочу на работу устроиться, вроде логика программирования одна на всех языках и судя по отзывам htdp и sicp лучше всего ей обучат. Первоначальный план был прорешать thdp, потом sicp, а уже потом месяца за 3 переучиться на любой другой язык и пойти трудоустраиваться. Сейчас правда мысли htdp прорешать и возможно начать учить язык для трудоустройства, т.к. прорешивание sicp может еще оттянуть на полгода-год устройство на работу, что не есть хорошо. Кстати на твой js наверно обучаться буду, вроде по вакансиям проще всего найти работу.
449 1318039
>>317976
Да, php или js чаще всего встречаются.

Только учитывай, что js часто - это frontend, а там некоторые хотят, чтобы не только логику на фреймворке (react/vue/angular) писал, но еще и верстал им. Бывает, конечно, что в штате держат отдельно версталу.
Чисто backend (node.js) вакансии чуть реже, но тоже есть.

SICP отодвинет не на год, а больше.

Хоть основы программирования HTDP и даст, но с экосистемой (либы всякие, бандлеры, фреймворк и т.д.) придется попердолиться знатно. Вряд ли 3 месяца хватит (ну если только совсем как трейни идти). Так что расчитывай где-то на пол-года минимум.
450 1318056
>>318039
Ну хорошо, буду иметь в виду, спасибо за советы. Терпение и труд, как говорится. Вчера вон всю ночь просидел, хуями в монитор ложил, но ебаный светофор все-таки сделал. Сейчас разобрался, что куда идет и почему именно так должно быть. Как говорил великий филосов Кама Пуля - не главное, с какой скоростью ты двигаешья, главное не останавливаться :З
451 1318097
Почитал тредик про рекурсию, получается в СИКПе пиздят, когда говорят, что хвостовая рекурсия = цикл? Ну допустим оптимизация хвостовой рекурсии имеется, но цикл сам себя не вызывает таки, всё равно разные вещи
452 1318108
>>318097
Хвостовая рекурсия это скорее goto, а не цикл. Можно и цикл запилить, можно и не цикл. По читаемости примерно эквивалент goto.
Поэтому собственно в ФП эту рекурсию прячут под плинтус, выставляя на фасад комбинаторы.
453 1318114
>>318108
это всё понятно, но ведь цикл сам себя не вызывает всё равно, то есть именно с этой точки зрения цикл запилить всё равно не получится через хвостовую рекурсию?
454 1318115
>>318114
или если как в типичном фп, оптимизация хвостовой рекурсии, то вызовы в стеке не остаются и в принципе тоже самое получится?
455 1318121
>>318115

>вызовы в стеке не остаются и в принципе тоже самое получится


Именно, получится goto в начало функции. А на базе goto уже легко делается цикл while, из него можно сделать и for.
456 1318128
>>318108
Что ты имел ввиду под словом "комбинаторы"?
457 1318129
>>318128
Всё, допёр, отставить
458 1318189
>>318097

>Почитал тредик про рекурсию, получается в СИКПе пиздят, когда говорят, что хвостовая рекурсия = цикл?


Где там такое написано?

>Ну допустим оптимизация хвостовой рекурсии имеется, но цикл сам себя не вызывает таки, всё равно разные вещи


Это уже особенности реализации транслятора. Рекурсивная функция все равно рекурсивная, даже если транслируется в цикл. В машинных кодах вообще функций и циклов нет. Но это же не значит, что в высокоуровневом коде нет функций и циклов.
459 1318248
>>318189
там написано, что цикл - это хвостовая рекурсия с синтаксическим сахаром
460 1318260
>>318248
На какой странице?
461 1318269
>>318260
51 в русской версии
463 1318279
>>318269
>>318270
И где там написано, что цикл это хвостовая рекурсия?
464 1318280
>>318269
>>318270
Цитата немного выше:

"Как следствие, эти языки способны описывать процессы только с помощью специальных циклических конструкций вроде do, repeat, until, for и while."

Теперь понятно, циклические конструкции это конструкции языка. Хвостовая рекурсия это способ написания рекурсивной функции, которая порождает итеративный процесс. Оптимизация хвостовой рекурсии, это когда хвостовой вызов транслируется в нечто не потребляющее стек.
465 1318282
>>318269
>>318270
Изучи что такое стек. Как функции помещаются в стек, как стек освобождается.

Статья на тему "Cравнение цикла и рекурсии с точки зрения производительности приложений" https://www.ibm.com/developerworks/ru/library/wes-1307_col_paskin/index.html
466 1318296
>>318282
статью чекну, спасибо
а со стеком я хорошо знаком
467 1318299
>>318296
Кинул ссылку перед прочтением, потом прочитал и увидел некоторые несостыковки в ней. Например написано, что хвостовая рекурсия никогда не потребляет стек, но это не так, если нет оптимизации в языке, то потребляет. И еще некоторые неточности. Но в целом можно прочитать. Есть конечно более фундаментальные статьи на эту тему. А еще лучше почитать книги.
468 1318301
>>318299
Да я со всем этим знаком давно, только про уточнение с оптимизацией хвостовой рекурсии услышал впервые, я думал, что везде вызовы в стек не помещаются, а оказывается только если оптимизация имеется. Мне просто хочется получше понять, как устроен цикл на более низком уровне. С рекурсией и её видами мне всё понятно, и как работает, и все фишки со стеком, и что это такое. С циклами я тоже умею работать, но не совсем понимаю, как это устроено изнутри. Ну в хвостовой рекурсии увеличили аргумент, к примеру, затем вызвали ту же функцию с этим изменённым аргументом, и так пока какое-то условие всё не остановит. А как в цикле все эти итерации проходят, если не процесс сам себя не вызывает?
469 1318302
>>318301
если процесс сам себя не вызывает
быстрофикс*
470 1318307
>>318301
Один в один, как при хвостовой рекурсии с её оптимизацией, или как-то по-другому?
471 1318320
>>318301

>А как в цикле все эти итерации проходят, если не процесс сам себя не вызывает?


Чтобы это понять нужно самому написать интерпретатор. И процессы бывают разные, есть процессы операционной системы, есть процессы реализующиеся языками, а в СИКПе говорится о процессе вычисления. То есть не о живом процессе в программе, а об абстрактном.
472 1318321
Ну выучу я эту ебалу и чё, сразу программистом стану? Где нормальные языки?
473 1318323
>>318320
Скорее не программный процесс, а вычислительный. Алгоритмический еще можно назвать. Линейный, нелинейный и т.п.
474 1318359
>>317530
Потому что cons-stream - это особая форма, а не функция, и свой аргумент она не вычисляет, сразу по крайней мере, а вычисляет только в тот момент, когда нужен очередной элемент последовательности. Лисповские стримы - это то, что сейчас принято называть "ленивыми списками", гугли.
475 1318360
>>318189

>В машинных кодах вообще функций и циклов нет


Здравствуй, приехали, а инструкции call, ret и префикс инструкций rep тебе говрит о чём-нибудь?
476 1318361
>>318359

> свой аргумент


свои аргументы
слоуфикс
477 1318362
>>318360
И что это за инструкции? Вообще то, машинный код состоит из двоичного кода, и в нем нет никаких инструкций.
478 1318365
>>318362
call вызывает функцию - кладёт на стек адрес возврата, а в регистр rip - адрес функции. ret возвращается из функции, делает то же, что и call, но в обратной последовательности. rep - префикс для повторения следующей инструкции до тех пор, пока значение в rcx не станет равным нулю, такой себе рудиментарный for.

> Вообще то, машинный код состоит из двоичного кода, и в нем нет никаких инструкций.


Машинный код состоит из ассемблерных инструкций, хватит троллить тупостью. В png-файле из оп-поста тоже двоичный код, но попробуй-ка ты его выполни, как исполнимый.
479 1318370
>>318365
Не функцию, а процедуру. Это не такие же функции как в высокоуровневых языках. Нельзя переписать функцию из высокоуровнего языка в одну функцию на ассемблере.

До ассемблера тоже были компьютеры, и естественно был машинный код.
480 1318372
>>318365
И вообще, процедуры появились в ассемблерах не так давно, если не ошибаюсь.
481 1318375
Аноны, читал в паре статей, что в самом MIT от SICPa уже отказываются, да и вообще, книгу на пистон перевели\хотели перевести. Однако гугл выдаёт какую-то сильно урезанную версию книги на питоне.
Есть ли где-то полноценная версия на питоне или на чём нибудь поновее, чем лисп? А то даже смотря на код, чувствую, что перед глазами laba2.
482 1318550
>>318375
А сикп это разве не дико навороченная лаба2, по крайней мере первые главы которые и советуют прочитать
483 1318567
Кому не лень объясните нахуй он нужон в 2019?
485 1318634
>>318613
Где бы посмотреть видосики чувака со 2 вебм?
486 1318642
>>318634
Гугли Кирилл Мокевнин. На DevConf зарегайся там есть его доклад.
487 1318670
>>318642
Спасибо.
488 1318679
>>318613
Ну, это он конечно же загнул. Сейчас это никому не нужно. Сейчас бизнес заинтересован в том, чтобы программист смог накидать рест контроллер на спринг буте (Аннтоация @Controller) и набросать сервис (аннотация @Service), которая расширяет единственный интерфейс MyServiceImpl extends Service, в котором будет реализован доступ к базе данных через дао (аннотация @Repository). Сам хайбернейт даже не нужно знать, а только уметь пользоваться Spring Data. Т.е. по-сути ты пишешь всякие findByName, а умный спринг фрамеворк за тебя гененирует высокооптимизированный запрос в базу.
489 1318685
>>318679
Найс явамакака порвалась.
Сикп не для тех, кто из говна, фреймворков и палок собирает БИЗНИСУНУЖНОБИСТРО. Сикп для тех, кто проектирует и пишет те же самые базы, например. По забавному совпадению прямо сейчас пишу на Scheme индексы для рудиментарной базы данных в пет-проекте - производительность почти как у C, кода на порядок меньше, а читабельность кода на порядок выше.
нг.mp415,7 Мб, mp4,
640x360, 4:21
490 1319014
Ну что, антоши, с наступающим вас. Благодаря вам я вкатился в обучение программированию; немало труда было в это вложено, но успехи есть - половину первой главы htdp (даже чуть больше) я уже осилил. Сейчас уже полноценно продвигаюсь по книге и уже не думаю, что стану ее бросать.
Добра вам и няшек, всего самого в наступающем году.
Вот вам песенка про новогоднюю ночь :З
ваш оп надеюсь после переката галка ОР все-таки начнет работать
491 1319048
>>319014
Да, всех с наступающим Новым годом!
492 1319066
>>319014
>>319048
Не надо толстить, и без того тошно. Скорее бы этот мерзкий день прошел...
https://www.youtube.com/watch?v=8-YtQZR2wUE
493 1319755
Пиздец неужели обязательно читать 500стр?
KomichiAyaReadingSICP.jpg122 Кб, 400x450
494 1319767
>>319755
Ну двощи ты читаешь каждый день, что мешает полистать книгу.
Я вот повёлся на форчанский форс книги, понял что вроде общие идеи понимаю и интересно весьма, но математика уровня школьника и недостаточная сообразительность мешают выполнять упражнения, поэтому попробую вкуривать английские лекции. Всё равно больше нечем заняться.
495 1319774
>>319767
Когда я понимаю, что для результата нужно приложить очень много усилий то руки сразу опускаются
496 1319778
>>319774
Ты не один такой.
Честно говоря, не знаю что за люди традиционно обитают /pr/, но я на своём этапе деградации уже не надеюсь сделать это своей профессией и воспринимаю как хобби.
497 1319782
>>319778
На моем этапе деградации мне кажется, что я скоро под себя срать начну
498 1319783
>>319782
А я слюни пускать, именно поэтому необходимо занятие, стимулирующее умственную деятельность.
499 1319851
>>319774
Делай понемногу каждый день.
500 1319976
>>319851
Не ебу о чем ваш тред, но я перекатился в питонотред, мне там вполне уютно, даже чувствую прогресс всем двачем пытаемся сделать брут цифрового кода
501 1320098
https://2ch.hk/pr/res/1320096.html (М)
https://2ch.hk/pr/res/1320096.html (М)
https://2ch.hk/pr/res/1320096.html (М)
ПЕРЕКАТ
заебись, там галка ОР начала работать:З
502 1323516
>>271806 (OP)
О чем эта книга, кратко.

Это та самая книга, о которой написано в лурке было? Я читал ее миллион лет назад, хуле толку-ниче не запомнилось.
503 1327711
Не знаю лисп ни разу, смогу прочитать книгу и что-нибудь понять и узнать?
Тред утонул или удален.
Это копия, сохраненная 28 января 2019 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски