Вы видите копию треда, сохраненную 8 ноября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Где скачать SICP?
https://github.com/sarabander/sicp-pdf/raw/master/sicp.pdf
На русском: http://newstar.rinet.ru/~goga/sicp/sicp.pdf
ориджинал: http://web.mit.edu/alexmv/6.037/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://2ch.hk/pr/res/1187852.html (М)
https://2ch.hk/pr/res/1236073.html (М)
Где я ещё могу пообсуждать любимый 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/
Эй, а где вебмки из прошлого треда от типа из hexlet и дядюшка Боба?
В жопе оленя, Очевидно же.
Блин, где вы эти картинки находите?
ЧТО ОПЯТЬ-ТО БЛЯДЬ???
А нельзя в ОП-посте написать кратко о чём книга и чему может научить?
Программированию. Написанию алгоритмов, дизайну абстракций, доступным парадигмам, решению задач.
Нет.
Попытаться выучить это книгу или дроччить сразу синтакс и смотреть гайды про нейронки без вникание в эти подводные?
Не хочу убить полгода - года а окажется, что книга нужна только тем кто хуярит фотошопы на крестах или драйвера.
да не особо хорошо ее надо знать, но ориентироваться в ней чтобы быстро если что что-то загуглить это вот не помешает. Однако это несложная задача в любом возрасте.
Вангую, что с таким подходом ты потыкаешься пару недель и сдуешься, так что не парься.
>учить инженерии когда сотни тыщ библиотек написаны и еще сотни тыщ будут написаны, и все будут лучше чем анон сможет высрать после этой книжки даже после 5 лет практики, потому, что библиотеки высираются ежедневно людьми с 40 годами практики и и 99% все, что придет ему в голову будет уже написано
Не засирайте людям голову, это писали в 80-ые, 10/10 анонов которые хотят вкотиться в айти должны учиться быть прикладными погромистами и уметь работать с библиотеками(даже книги есть на эту тему) а не пердолить велосипеды. Тысячи людей проебали годы а потом пошли хуярить и поняли, что им нинужно.
Если человек просто сможет в библиотеки и азы и уже начнет хуярить в реальном секторе как можно раньше - он за 3 месяца практики будет будет лучшим специалистом в индустрии, чем тот кто пердолил теорию 2 года.
ты будешь тем кто ноет что индусов много и работы нет
Но ведь сикп не подразумевает, что человек будет пердолить теорию. В сикпе как раз нужно заниматься практикой.
Точнее не скачал, а читаю онлайн.
>Я уже бросил 3 учебника - сикп, слоник и хтдп
Слоноёб, ты уже и HTDP дропнул?
Быстро ты.
Раньше это занимало у тебя больше времени.
Это явный прогресс, лол.
Скажи, а почему именно лисп, а не питон, например?
В чём причина?
Лисп - довольно специфическая вещь.
Он вообще далеко не всем заходит.
А особенно - в качестве первого языка.
Может быть, не стоит ебать себе мозг?
>Слоноёб, ты уже и HTDP дропнул?
Конечно и хтдп дропнул. Потому что мне нужен учебник для нуля, а не для прокачивания имеющихся скиллов. Смотри пикрилейтед - вырезка из хтдп. Максимум, что я смог для себя выжать из этого, тупо умозаключениями, что эта команда преобразовывает количество символов во фразе в число. И то блядь сам сидел и доходил. А блядь в нынешнем учебнике именно объясняют. Что одна команда, это чисто строковая, Другая команда это числовая. СТРЕЛОЧКА БЛЯДЬ -> это блядь преобразование и ей пользуются, когда переводят из одного формата в другой.
>Быстро ты. Раньше это занимало у тебя больше времени.
Я понял, что мне нужен учебник по синтаксису схемы и азам программирования. Если блядь в том же пикрилейтед нет разжевывания, как это работает, а сразу ставят перед фактом, то ну его нахуй. Нужно учиться, впитывать информацию, записывать конспект с расшифровкой функций. А не блядь строить догадки, как это было в слонике с ебаными вопросами. маму того гандона ебал, который мне слоника советовал Короче нашел я ключ ко своему успеху.
>Скажи, а почему именно лисп, а не питон, например? В чём причина?
Причина в том, что сикп и хтдп, признанные мировым сообществом, сделаны под схему. Схема, по отзывам интернета, простой язык для обучения, для прокачивания именно навыка программирования. Плюс это вроде как низкоуровневый язык, который поможет в дальнейшем не стать мудаком, который компонует между собой блоки, а реально понимает, что к чему. Я осилю схему, а синтаксис другого языка потом переучу, говорят дело 3х месяцев, причем не сильно напряжных.
>Лисп - довольно специфическая вещь. Он вообще далеко не всем заходит.
Вот я сейчас нормальный учебник скачал и вполне себе заходит.
>Может быть, не стоит ебать себе мозг?
А я разве когда-то сильно жаловался? Меня мозгоебля не напрягает. Мне интересно разбираться с тем, что я не умею. Сейчас все пошло охуительно, радуюсь жизни и решаю простенькие задачки по функциям, которые мне объясняют.
>не стать мудаком, который компонует между собой блоки
Именно этим ты сейчас и занимаешься.
Понимаешь, стрелочка - это просто стрелочка.
Она вообще ничего не значит.
Это для тебя, а не для компьютера.
Просто говорящее название функции - "число-в-строку".
Мне кажется, ты не понимаешь каких-то основополагающих вещей о компьютерных технологиях.
Это не языки, не функции, не числа, это некая общая идея, которая за всем этим стоит. И ты её не схватываешь, пока.
И поэтому, всё остальное у тебя не идёт или идёт туго.
Я ведь не просто так тебе LOGO советовал.
И не просто так написал несколько длинных комментов вчера.
И да, питон тоже неплохо пошёл бы.
Толку было бы гораздо больше.
>Мне кажется, ты не понимаешь каких-то основополагающих вещей о компьютерных технологиях.
Ну я читаю только вторую главу, а их там 12. К концу учебника должно же что-то измениться.
>Это не языки, не функции, не числа, это некая общая идея, которая за всем этим стоит. И ты её не схватываешь, пока.
Ну так я и говорю, что нужно именно навык программирования прокачать. Вот пытаюсь это сделать.
>поэтому, всё остальное у тебя не идёт или идёт туго
Сейчас все идет, и идет не туго.
Ну вот смотри пикрилейтед. У меня была глава, где объясняли функцию let. Потом упражнение, когда функция записана только с переменной Х, а нужно переименовать функции так, чтобы все переменные были разные и не были затенены (не пересекались). И че блядь? И ведь решил нахуй. Короче идет у меня дело. может не так, может не туда, но по учебнику двигаюсь вполне неплохо. Да, меня частенько в троллинге упрекают, но хуле делать, не всегда все понимаю.
Ты обещал без аниме, пидор.
Да я че-то забыл, что обещал без аниме. Но четко помню, что обещал без пони. Ну извините. А вообще, не нравится - сам перекатывай ПОНИДРОЧЕР КАВАЙНЫЙ
Ну я и говорю, что забыл, что обещал без аниме, а только помнил, чтобы поней не было. И извинился. Извиняюсь еще раз.
Кстати че тебе так бомбит от аниме? Просто блядь запостить пик книжки как-то слишком уныло.
>Не засирайте людям голову, это писали в 80-ые, 10/10 анонов которые хотят вкотиться в айти должны учиться быть прикладными погромистами и уметь работать с библиотеками
>уметь работать с библиотеками
А что нужно, чтобы уметь с ними работать? Знать английский, чтобы уметь прочесть документацию?
>В сикпе как раз нужно заниматься практикой.
Средне анон на него убьет год и с 90% вероятностью будет работать на фреймворке до гроба.
Ну или еще хуже, не осилит и пойдет бичевать, это достаточно сложный курс.
>Максимум, что я смог для себя выжать из этого, тупо умозаключениями, что эта команда преобразовывает количество символов во фразе в число
Так string-length переведи с английского. Что получим? "длина строки". Что ж она может-то еще выдавать кроме количества символов?
number->string (число переходит в строку)
string->number (строка переходит в число)
Правильно выше написали, что тут не с программированием проблемы и не с синтаксисом. Инглиш + мышление.
На самом деле тяжко тебе будет, ой тяжко. Но крепись.
Задачки чтоль логические порешай в параллельно с книгой своей, возможно поможет.
Например "Тигриная алгебра". Или вот сайт есть http://www.braingames.ru/
А что нужно, чтобы писать программы?
Буквы нерусские выучил - и вперёд.
Можно даже русские, лол, тут неподалёку есть один тред про это.
Этот курс с сикпом связан только тем, что сикп там погребён глубоко в списке "ну можно прочитать чё"
>Позвольте разъяснить несколько моментов: а) Большинство людей, которые делают сайты – не программисты. Если вы хотите делать сайты, но не хотите быть программистом – берите в зубы учебник «PHP5 в подлиннике» и начинайте делать свою первую гостевуху. Вопросы решайте в гугле и на форумах. Здесь другая тематика. Эту пасту дальше читать не надо, мы будем долго разговаривать, а вам нельзя терять время.
>берите в зубы учебник «PHP5 в подлиннике» и начинайте делать свою первую гостевуху
Ты понял, что делать.
>>47982
Двачую. Надо знать математику на уровне "смогу загуглить что такое числа фибоначчи и понять по статье в википедии, что это собственно такое"
>>48045
Да открой уже для себя https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!
> А выучу синтаксис
> синтаксис
> Scheme
> синтаксис
> Scheme
Ты и вправду не очень умный либо попросту троллишь
904x612, 0:23
Инглиша у меня нет от слова "вообще". Так что пока так. Вроде на первое время, чтобы джуном устроиться, он и не нужен. А там уж залезу если, буду и его учить. Мышление тоже пока не подключается, наверно потому, что не сильно понимаю суть вопроса и что от меня нужно. Ссылку твою сохранил, но пока свой учебник порешаю, может посредством его удастся понять, что в принципе от меня нужно.
>>48110
Вот я открыл пока что для себя нормальный учебник с простенькими задачками к каждой функции, пока его решаю и вполне успешно. Ссылку твою сохранил на всякий.
>>48137
Видеорилейтед.
>>>1248137
>Видеорилейтед.
Но ведь тот анон прав. Какой нахуй синтаксис в схеме? Может ещё синтаксис скретча поучишь?
Просто этот дурачок синтаксисом называет стандартные функции и формы, типа car там, cdr, string->number и прочее. Не обращай внимания, он уже на моей памяти третий тред подряд троллит тупостью.
Ну может я и правда неправильно выразился. Имел в виду все эти команды. Но ведь и тот сосатель хуев не сильно прав, т.к. он явно понял о чем речь, т.к. в том посте описано, что разбираюсь именно с командами. Но нет, решил потешить свое чсв и доебаться до слов. Так что тот видеорилейтед вполне актуален.
>>48246
Ты, конечно умнее того, кто доебался до слов, но по большому счету тоже недалекий, ибо пытаешься высмеять ньюфага, который прикладывает немалые усилия, чтобы перестать быть таковым.
Хтдп начинается буквально с целой главы про то, как нам сложить два числа. Он изначально писался с расчетом на то, что по нему можно преподавать старшеклассникам основы программирования.
При чем тут лисп-то? Тред про сикп и обучение программированию, лиспотред вооон там.
>>48043
>Сам-то понял, что сказал, лол?
Что тебе непонятно? Там объясняются все основные используемые парадигмы программирования.
>инструментом жирного троллинга ньюфагов.
Все еще рвешься, долбоеб? Тебя самого не заебало в каждом треде срать?
> что я смог для себя выжать из этого, тупо умозаключениями, что эта команда преобразовывает количество символов во фразе в число
>string-length
>строки-длина
>СТРЕЛОЧКА БЛЯДЬ -> это блядь преобразование и ей пользуются, когда переводят из одного формата в другой.
>operation that converts strings into numbers
> Сейчас все пошло охуительно, радуюсь жизни и решаю простенькие задачки по функциям, которые мне объясняют.
Впрочем, whatever works for you, нравится - вот и хорошо. Забавно кстати, что этот учебник ты себе сам нашел, лол, а не местные советчики тебе его посоветовали.
>И да, питон тоже неплохо пошёл бы.
Ты блядь понимаешь, что с питоном ему бы в самой первой главе пришлось осознавать, чем отличается передача по ссылке от передачи по значению, например? А также что такое классы, чем __init__ отличается от конструктора, чем генератор отличается от итератора, почему некоторые функции мы вызываем как foo(x), а некоторые как x.foo(), что такое модули и области видимости, итп итд
А слоника ему ведь тоже ты советовал?
Хуль тебе аниме не нравится? Тут своя атмосфера, атмосфера доброжелательности и взаимопомощи :3 в рот тебя ебал, пидрила
Да местные дебилы могут только сикп посоветовать или слоника с его дебильной подачей. А так через гугл и искал, что делать.
Не, слоник так-то охуенный, просто как бы не всем подходит. Ты ж вообще говорил, что у тебя там вышка по информатике или что-то такое, лол. Короче, надо подбирать индивидуально, а тут как бы анонов с опытом преподавания нет (да и тебя лично никто не знает), так что советуют исходя из своих представлений о том, что бы им подошло, а не тебе.
Да у меня корки только. Ладно, сойдемся на том, что слоник не подошел лично мне, а тот, кто советовал, ему хорошо подошла. Просто мне проще прочитать текст с объяснением, законспектировать своими словами, решить пару примеров по этой функции и все для себя понять. А не стоить догадки, прибегать на двач с порванной жопой и вопросом "хуле этот слоняра доебался, че ему надо?". Но сейчас вроде как встал на путь истинный, поглядим, что будет дальше.
Нет, слоника советовал не я.
Питону можно учиться по-разному.
И ты написал явную и очевидную хуйню.
Потому, что ты либо дурак, либо тролль.
Питон - язык, идеально подходящий для обучения.
А советовать SICP (и вообще лисп) полным ньюфагам в 2018-м - это очевидный троллинг.
>Отображение тут ни при чем, дробь никогда не отображается как число с плавающей точкой.
Сынок, в Racket это называется Fraction Output Style.
Остальное просто лень комментировать, да и жирно тебе будет.
Так что иди на хуй, не теряй время.
>Нет, слоника советовал не я.
proofs or gtfo
>И ты написал явную и очевидную хуйню.
Универсальный ответ на любой пост, лол. Я изложил факты, а тебе по делу ответить нечего.
>Питон - язык, идеально подходящий для обучения.
Ну да, правда создавался он для другого и в обучении используется не чаще других языков, но раз ты так сказал, то так оно и есть, да.
>А советовать SICP (и вообще лисп) полным ньюфагам в 2018-м - это очевидный троллинг.
Ну напиши письмо президенту Калифорнии, что какие-то ушлые евреи свою school of computer science запилили, чтобы анончика с зекача потроллить: https://teachyourselfcs.com - пусть разберется!
Алсо, дальнейшие вариации на ту же тему:
>советовать кернигана-ричи вкатывальщикам в си - это очевидный троллинг
>советовать фихтенгольца (зорича) вкатывальщикам в матан - это очевидный троллинг
>советовать "изучай х-ль во имя добра" вкатывальщикам в фп - это очевидный троллинг
>питон
>в обучении используется не чаще других языков
Гораздо чаще. И это легко гуглится.
Например, много ли есть книг типа "хаскель для детей", "лисп для детей", "кресты для детей"? А про питон - хуева туча.
По остальным пунктам - то же самое, примерно.
Я думаю, тебе, всё же, стоит пойти на хуй быть толстым где-то в другом месте.
Про хаскель есть поинтересней книженция, хоть и платная (но кто ищет всегда найдет)
А про матан ничего сказать не могу - у меня по нему тройка была, перекрывал "отлично" по программированию, чтобы степуха была.
Но всегда пекло от того, что у нас предмет типа имеет отношение к АНАЛИЗУ и считается неебически важным всем иначе не научишься мыслить и анализировать. Тогда как на "загнивающем" это просто "исчисление" и никаким анализом в нем и не пахнет - тупо задрачивание кучи шаблонов по вычислению той или иной херни.
У нас преподша с принебрижением вообще относилась к остальным предметам, мол только ее самый главный. Вот типа у меня получаете тройбаны, а мой предмет пройдет будет больше программирования, сразу все отличники становитесь, мол и тупая макака будет программистом, а только светлые головы смогут познать сей дивный предмет матанализа.
мимо бомбящий js-dev
> хаскель есть поинтересней книженция
Ты имеешь в виду ту, которая издательства Manning?
Или ещё какую-то?
> матан
Матан (континуальная математика) нахуй не нужен в программировании.
Термин "анализ" в названии имеет вторичный, технический смысл, и может смело быть опущен.
Никакого отношения к умению анализировать что-либо это не имеет.
другой
Погугли, что такое "число с плавающей точкой". И что такое "символ" заодно тоже погугли. (Ну и что такое pi заодно, лол.) И что такое pretty printing. Можешь даже сам открыть рекет, поменять в настройках отображение ratios и посмотреть, как оно все работает. Потом перечитай мой пост.
Алсо, можешь уже прекратить так рваться, тебе не 15 лет надеюсь, лол.
>Гораздо чаще. И это легко гуглится.
В большинстве вузиков первакам дают сишку и\или джаву. Питон тоже дают, но не чаще других языков.
>Например, много ли есть книг типа "хаскель для детей", "лисп для детей"
Только что ведь вкидывали, лол, проскролль вверх. Алсо, при чем тут лисп и дети, если речь про питон и обучение.
>По остальным пунктам - то же самое, примерно.
Ну да, я же написал уже: тебе нечего сказать по делу, поэтому ты рвешься.
>можешь уже прекратить так рваться
Да, ты вполне можешь прекратить, лол.
Но не хочешь, почему-то, лол.
Сынок, пост был написан конкретному человеку, по конкретному поводу.
Но, тут появился ты и забрызгал всё вокруг своим баттхёртом и маня-проекциями.
Выглядит заманчиво.
Ты, кстати, читал JavaScript Allonge?
Годная вещь (это про FP).
А вот Functional Programming in JavaScript - так себе.
Сборная солянка ни о чём.
>Про хаскель есть поинтересней книженция
Согласен, но традиционно ньюфагам советуют именно фор ве грейтер гуд, так что с ней аналогия получается лучше.
>имеет отношение к АНАЛИЗУ и считается неебически важным всем иначе не научишься мыслить и анализировать.
А когда по алгебре "поля" проходите, вас типа на картошку должны вывозить, лол? Это просто название, к слову "анализ" в общем смысле отношения не имеет происходит типа от "анализ поведения функции".
> Тогда как на "загнивающем" это просто "исчисление" и никаким анализом в нем и не пахнет
Не, ты путаешь. Калькулюс - это "основы анализа" по-нашему, в 10-11 классе обычно проходят. https://en.wikipedia.org/wiki/Mathematical_analysis
>У нас преподша с принебрижением вообще относилась к остальным предметам
Ну это у них часто встречается, да. Первым делом первым делом матанализ...
>мол и тупая макака будет программистом
Ну...))0)
Я, но я мимо вашего разговора иду, споришь ты не со мной.
>Да, ты вполне можешь прекратить, лол.
Мне кажется стоит иногда указывать место тем, чье чсв не соответствует их реальным знаниям\навыкам. Это лучше для них же в первую очередь.
>пост был написан конкретному человеку, по конкретному поводу.
Именно. Тот человек все понял правильно (в контексте того обсуждения), а ты начал называть его тупым и путать его некорректными утверждениями. Вот я и поправляю твои ошибки, но ты зачем-то вместо того, чтобы просто сказать "ок", начал рваться и посылать всех нахуй. Глупо.
>тут появился ты и
Указал тебе на твои ошибки. Прочитал, что такое "символ"? Как работают ридер и принтер? Чем флонумы отличаются от ratios?
>пук
ЧТД. Желаю тебе продуктивно порефлексировать :3
>>48335
У вас наверное были базовые курсы (калькулюс), а для Ъ-маняматиков уже отдельные курсы для того, что составляет типа analysis. Ну то есть если с нашими вузами сравнивать, то у нас бы ваш калькулюс назывался бы матаном, да. Короче, mismatch переводов, это все хуйня, смысл в том, что analysis у них тоже есть, calculus - часть (база) analysis.
Анус себе отрефлексируй, пёс.
Иди блять аниме смотри, неуч
Racket - это и есть Scheme, лол.
Для любителей пощекотать очко - в дополнительных языках есть R5RS.
Есть SICP - ставится через настройки (загружается) - гугол в помощь.
Алсо, есть и другие реализации Scheme, просто Racket - наиболее развитая.
Питон доставил, лол.
Тупой оп опять с тупизной приперся.
Не могу разобраться с ебаной лямбдой. Пикрилейтед 4 упражнения из того учебника, логику поймать не могу.
1. Это упражнение решил сам правильно. Иксы блядь друг друга поубивали, Тем самым никаких изменений не вносят. 'а возвращает просто а, т.к. ' - сокращение от quote, а эта функция возвращает выражение, не выполняя его. Может логика моя не правильная, но ответ совпал.
2. Лучшее, что смогло прийти в голову, то 'а вернулось в скобках, т.к. лямбда пытается вернуть список в скобках, вот оно эту а в скобки и захуячило. В первой задаче второй икс за скобкой, а 'а уже аргумент, который вернулся без изменений, в этом же примере второго икса, который за скобкой, нет, поэтому нашу 'а он в скобки и захуячил.
3. С ебаной точкой я вообще не сильно понял, как воевать. Были функции лямбды, где допустим два аргумента, дальше точка, потом еще что-то. А на выводе он отделяет эти два аргумента скобкой, точнее все, что дальше, в скобки захуячивает. ТУт явно не тот случай. В книге раньше по тексту пиздели что-то про пары, когда там пары неправильные или списки неправильные, точка ставится, тоже как-то мутно представляю. И это упражнение не понял, схуяле.
4. Тут даже комментировать нечего, просто не понял.
Уж начал задумываться, может правда все это не мое...
Это расширение языка.
Для этого примера это не важно.
Мне было интересно, осознаёшь ли ты происходящее, лол.
Если говорить про лямбду, осознаю как-то так.
lambda – используется, где нет имени функции, но в то же время создает функцию,которая возвращает значение последнего (выражения). ((lambda (x) (+ x x)) ( 3 4)) равно 24, а не 12, т.к. 34 равно 12, т.е. это х=12, а у нас (+ х х), т.е. 24. если (lambda (x) (list x y) – икс мол вызывает сам себя и ответ будет y. это не точно, но вроде как-то так. она отвечает списком. если аргументов нет, возвращает пустой список, т.е. (); если в первых скобках список и есть точка, то сколько аргументов перед точкой, столько он отделит скобкой при выводе (х у . z) (1 2 3 4) на вывод будет (1 2 (3 4))
Это копипаст с вордовского документа, в котором записываю работу функций. И происходящее, по крайней мере с лямбдой, по ходу не осознаю.
Если аргумент x без скобок - это список всех аргументов, сколько бы их ни было.
Точка - аргумент после точки - список остальных аргументов, сколько бы их ни было.
Возьми и поиграйся с этим сам.
Леты (локальные переменные) не надо тебе пока, ты с вещами попроще разберись.
Без летов сделай то же самое:
(define f (lambda (x y . z) (list x y z)))
(f 1) ; Ошибка, мало аргументов
(f 1 2)
(f 1 2 3)
(f 1 2 3 4)
Не надо просто читать и копировать упражнения.
Надо самому экспериментировать, чтобы понять.
Ну я не то, чтобы их копировал, я мозгами их решал, потом вводил в ракету и что-то не совпадало, вот и начинал думать, что и почему. ХОрошо, спасибо за развернутый ответ. Не думал, что сразу ответят; сейчас я спать, т.к. полчетвертого утра, А высплюсь, вернусь к этому вопросу и сделаю все, что ты написал и посоветовал. Еще раз спасибо и добра, няша :З
> слоника с его дебильной подачей
Сам ты дебильный.
>>48316
Не знаю как у вас, но в моём гарварде для вкатывальщиков сишечка используется.
>>48321
> В большинстве вузиков первакам дают сишку и\или джаву.
Ну вот, собсна. Только тогда уж не джаву, а жс.
На джаве чтобы хеллоуворлд написать надо попутно кучу хуйни объяснить
А где тот чухомор, который срал под себя и позволял одноклассникам рвать его учебники на переменах? Ах, вот же он, лал.
Ты небось и на толчке жрёшь, уёбище.
>Racket - это и есть Scheme, лол.
Значит на нем проходить упражнения?
>Для любителей пощекотать очко - в дополнительных языках есть R5RS.
А это, что значит тогда?
>Есть SICP - ставится через настройки (загружается) - гугол в помощь.
Тогда это зачем?
Можешь найти на $0, если поищешь хорошо.
2. x в этом случае (когда без скобок) собирает в себе список всех аргументов, которые передали. Тут передали а, вот и получили список содержащий а
3. то, что после точки собирает в себе список "лишних" аргументов.
(lambda (x y . z) ...)
Если передадим ей 1 2 3 4 5
x станет 1
y соответственно 2
а все остальное пойдет в z, т.е. (3 4 5)
По твоей картинке у нас первый переданный пойдет в x все остальное в y.
Следовательно x у нас и есть a
а поскольку больше ничего не передавали, то y пустой список ()
Ну просто ж ведь. Надо просто внимательно читать читать и вникать. Причем не запоминать вывод буквально, а думать почему так, а не иначе.
В других языках тоже похожая фишка есть. Например js:
function (x, ...y) {}
Только тут вместо одной точки три.
Это - разновидности Scheme, которые можно использовать в Racket. Их там много разных.
Не засирай себе мозг - поставь Racket и начинай с дефолтными установками. Потом - почитай документацию, погугли.
>Только тогда уж не джаву, а жс.
Да, образование катится в гавно, есть такое.
На потребу широким массам быдла.
Да это тут не при чём.
Вот хелловорлд на джаве:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
И на жс:
<script>
alert( 'Hello, world!' );
</script>
Это без учёта того, что <script> вообще html тег, просто чтобы хеллоуворлд работал нужен по крайней мере этот тег
Разница есть?
Объяснить два слова алерт и скрипт (и то с оговорочкой), или объяснить паблик класс статик войд стринг аргс систем-аут, попутно полностью пояснив охуевающему студенту за ООП?
Пока писал этот пост, подумалось вот о чём.
Сюда ведь часто заскакивают трали с возгласами "велосипеды нинужны", так?
Но почему-то всё образование исконно состоит из велосипедов. И состоит из них ВЕКАМИ.
Любой предмет совершенно. Самый яркий пример - математика. Сначала простейший устный счёт, потом новые цифры, новые операции, и всё больше и больше контента, но всё строится ПОСЛЕДОВАТЕЛЬНО, взятие интеграла можно последовательно разобрать вплоть до уровня ясельной группы, потому что оно строится на предыдущих понятиях из курса математики конечно не всякий студент сможет это сделать, потому что программа плотная, любой малейший проёб по ходу и вот ты уже играешься с чёрными ящиками и зубришь наизусть изолированные понятия, не понимая что это вообще.
То же самое русский язык, химия, физика, исключение разве что история.
Все учились путём наслаивания сложного на простое, т.е. на велосипедах
Но когда дело касается информатики, то внезапно велосипеды стали не нужны. Нахуй что-то понимать, даёшь работу пляски с бубном вокруг чёрных ящиков! Хотя по факту все грамотные cs программы, в т.ч. и курс сикп, подразумевают ДОЗИРОВАННУЮ работу с чёрными ящиками уже в период обучения.
Тот же курс гарварда и мит, где студента сразу готовят к этому, говоря "вот это printf, это функция из какой-то библиотеки, хуй знает как она работает но нам похуй", тот же сикп, но почему-то на сикпе свет клином сошёлся а на том же митовском курсе питона нет. Почему? Да хуй знает. Вангую что из-за сложной подачи, отсутствия современных лекций и вытекающего из этих фактов неосиляторства.
Лично я сам неосилятор (но осилил до тех пор, чтобы иметь возможность понять то, о чём писал выше), но отношусь ровно к этому, если кто-то осиляет то почему бы блядь нет?
Всяко лучше чем по углам курить-шабить-дрочить-мастурбировать
А что думаете вы?
Ах да, ещё из-за "кокок схема нинужна на ней ничиво ни напесать зачем учить тада", хотя в гарварде введение в информатику на 99% состоит из сишечки, на которой тоже ничиво ни напесать, но как я понял дрочат в основном не на гарвард (просто отметая его, будто его не существует / это не топовый вуз / причина_нейм, хотя раз там в 2018 начинают курс с си, это наверняка неспроста), а на мит с его питоновским курсом, опять же забывая что тот же сикп из мита никуда не делся (вроде).
Сказать-то что хотел, лол? В этом мире все идет от меньшего к большему. Сначала придумали колесо, потом тачку, потом телегу, потом привязать к телеге лошадь... сейчас электромобиль тесла, который ездит сам, без водителя. Можно быть просто пользователем, а можно вникать глубже. Я богатый программист, изучил все эти сикпы и пр. Купил новый лексус и мне нахуй не нужно знать, как там коробка и движок работают. В программировании я царь и бог, в ремонте и обслуживании машины я полный ноль, да и не нужно мне это. Поэтому кому что. Кто-то скажет, мол нахуй новый лексус, он дешевеет пиздец как, а вот я купил логана бэушного, сам обслуживаю и стоимость владения в 5 раз дешевле, плюс изначально покупка в 20 раз дешевле. А мне похуй, у меня есть бабки, могу себе позволить, плюс у меня нет времени, чтобы гайки крутить. но это все мечты о светлом будущем, а пока я дебильный оп, разбирающийся с лямбдой, лол
>В программировании я царь и бог, в ремонте и обслуживании машины я полный ноль, да и не нужно мне это.
Тогда моя очередь спрашивать "сказать-то что хотел?"
Значит ты вообще ничего не понял из моего поста, что собственно по твоему первоначальному вопросу видно.
Задавай конкретнее, что именно тебе неясно.
Все мне ясно. Под фразой "что сказать хотел", я подразумевал, что пишешь очевидные вещи, вот и все.
Он вообще эффективна с точки зрения тайм менеджмента, то есть потратить на нее год, изучить через нее на липсе все подводные и потом за несколько месяцев выучить синтаксис каких нибудь крестов и успешно вкотиться?
>Кто тебя знает? Это же зависит то того, зайдёт тебе или нет.
Это понятно, что все индивидульно, просто интересует, мнение анонов как они считают в среднем.
В сикпе, кстати, объясняют, что let - это просто сахар над lambda.
В среднем - не стоит. Потом для интереса почитать или даже никогда.
Но это в среднем, не попробуешь - не узнаешь.
> Если её всю осилить то дзен откроется?
Да. Он откроется ещё тогда, когда в третьей главе тебе дадут оператор присваивания, и ты охуеешь, сколько сложного рабочего кода ты уже написал например ебучая задача восьми ферзей без единой операции присваивания.
Блядь, ну вот же HtDP-шный диалект в ракете прямо в стандартной поставке, даже не нужно включать мозг и искать ничего в интернете, нет блядь, не хочу по нормальному, хочу говно жрать swindle какой-то из жопы высрать и им обмазываться. Бро, ты и правда не очень умный. Выше по треду были какие-то задачки на сообразительность, может всё-таки с них начнёшь?
>ебучая задача восьми ферзей без единой операции присваивания
та нах так соль на раны сыпать снова...
Блять, аж скрин с негодования отвалился.
>та нах так соль на раны сыпать снова...
Да лан, пару часов проебался, зато кокое удовлетворение, когда она у тебя наконец работает
Няш, не ругайся. Учебник приводит примеры и ответы на них, потом дает задачи решать самому. Примеры этого учебника и ответы у меня не совпадали, когда язык был такой, как у тебя на скрине. Методом тыка я подобрал язык, чтобы ввод и вывод в учебнике и у меня в программе были одинаковыми.
Я уже десяток лет этой хуйнёй программированием на хлеб зарабатываю, сикп на досуге решил прорешать, чтобы приблизиться к сатори.
>Методом тыка я подобрал язык, чтобы ввод и вывод в учебнике и у меня в программе были одинаковыми.
Не хочу тебя огорчать, но ты хуйню сделал.
> Примеры этого учебника и ответы у меня не совпадали, когда язык был такой, как у тебя на скрине.
Неси сюда, будем всем зекачом разбираться, что у тебя там не совпадает.
Сейм щит, только лет поменьше.
Да я уж приносил и посоветовали изменить язык. Что я и сделал. -> https://2ch.hk/pr/res/1236073.html#1247056 (М)
Ну так-то вроде все нормально, смысл мне дальше разбираться и куда-то лезть?
Ясн.
Кароч, понять, что (list 'a 'b 'c 'd) и '(a b c d) - это разные представления одного и того же объекта, а именно списка с элементами a, b, c и d, это и есть конкретный пример абстрактного мышления. Это очень важная вещь для программиста, но у тебя с этим, как показывает практика, туговато. Вообще, как я люблю говорить своим студентам, программирование - это профессия, в которой тебе каждый день нужно балансировать в опасной близости от банальной шизы.
Мне уже разъяснили в прошлом итт, что суть выводов одна, просто по разному пишут. Но я в самом начале пути и пускай все будет, как в учебнике, мне так удобнее.
Классека.
>>48434
2. Ну смотри, когда ты пишешь (f 1 2 3), все аргументы передаются списком. Если ты напишешь (lambda (x y z) ...), то x=1, y=2, z=3. Если ты напишешь (lambda l ...), то l = (1 2 3), то есть список целиком берешь.
3 и 4. Нотация с точкой - это просто обозначение для головы и хвоста списка. То есть (1 . (2 3)) - то же самое, что (1 2 3). Соответственно если пишешь (lambda (x . xs) ...), то он в икс засовывает первый элемент, а в xs засовывает все оставшиеся элементы.
На самом деле тебе это не особо надо, можешь пропустить.
Вот примерно соответствие видео и главы книги
http://community.schemewiki.org/?sicp-text-to-video-map
ОООО годно, я так понел сначала лекцию а потом главу, а как себя само-экзаминовать или тупо по ощущениям?
В sicp куча упражнений. Сиди - решай.
> эти скобочки в 9 этажей с присваиваниями
Я как 15км пробежал когда пытался все это в голову засунуть.
Велосипеды не нужны в тот момент когда ты при желании можешь его разобрать и собрать. Это нужно редко, но те моменты когда это может быть полезно и показывает хуй с горы ты или программист.
Выше была приведена аналогия с новым лексусом и старым логаном, но он нихуя не понял.
Особенно доставляет "зочем тратить время учить СИНТАКСИС схемы за это время можно уже освоить вуе.жс джанго и спринг с хиюернейтом и стричь 300килобаксов лопатами))0)"
Короче суть моего поста: бессмысленно считать систему "от простого к сложному" чем-то плохим применительно к программированию, постольку поскольку эта система применяется везде и везде работает.
Синтаксис схемы для чайников:
1. Логические блоки отгораживаюсь скобками
2. Элементы разделяются пробелами
Поздравляю! Вы выучили синтаксис схемы
Теперь версия для знакомых с си-подобными ЯП:
1. Вместо фигурных скобок - круглые
2. Оператор всегда в начале
Поздравляю! Вы выучили синтаксис схемы
Там одно очевидное говно и понимать там нехуй. Если тебя устраивает тупое пользование велосипедом - твое дело. Только очко потом будешь разрывать, когда колесо проколешь или цепь с него слетит.
Сдались мне эти бредни. Рекомендую погуглить диагноз "шизоидное расстройство личности", мне кажется дело в этом.
Извини, многабукав, неосилил. Вместо того, чтобы читать твою простыню, я уже запилил свой генератор оперденей на вуе.жс, гребу 300кб\сек лопатой веслом.
Алсо, еще можно вот такой тлдр представить:
для чайников: (f x y z ...)
для знакомых с си-подобными яп: f(x) -> (f x)
Эм, ну тебя виднее, в чем там у тебя дело, чувак. Я просто проходил мимо и указал тебе на то, что тот анон писал ровно о том, о чем ты написал в своем посте:
>Если тебя устраивает тупое пользование велосипедом - твое дело. Только очко потом будешь разрывать, когда колесо проколешь или цепь с него слетит.
- а ты его просто видимо неправильно понял.
Нет это ты погугли - это надо быть реально пришибленным, чтобы так лихо союзников во враги записывать.
Ну это отписавшимся, а так-то у ПРОГРАММИСТОВ уровня laba2.cpp часто встречается мысль, мол ВСЕ БИБЛИОТЕКИ УЖЕ НАПИСАЛИ, НАХУЯ ЧОТА УЧИТЬ, ПРОСТО ПОДКЛЮЧИЛ БИБЛИОТЕКУ И ВСЕ)))0) - правда потом на первой же работке у них случается небольшой надрыв манямирка, ага-ага
В вебе вон фреймворков дохуя, а нормальной библиотеки где были бы все контролы из win forms нет.
Эм... бутстрап, материал реакт, не? Тыщи их.
Запретить ты им не сможешь, а вот игнорировать их высеры - вполне.
Вот пример:
n = 7
a = 2
Начинаем возводить a в 6-ую степень. a=4
В задании написано, что на этом этапе нужно проверять число на то, является ли оно каким-то, помимо 1 и n-1. Очевидно, в моем случае проверка завалаена и n будто бы составное. В чем ошибка?
>нетривиальный квадратный корень
Вот этот вот весь матан в качестве предметной области и делает сикп совершенно непригодным для обучения.
Шахматные задачи ещё такое же говно без задач, лол.
Для 80-х это было ок, но, с тех пор всё очень сильно поменялось.
>тупость
Чувак, жизнь стремительно меняется и усложняется.
И тратить время на неинтересную ненужную хуйню - непозволительная роскошь.
Алсо, обучение без мотивации - это хуйня.
Интерес - мощнейшая мотивация.
И неинтересные задачи - лучший способ сделать обучение неэффективным.
>1.1.8 Procedures as Black-Box Abstractions
>e importance of this decomposition strategy is not simply that
one is dividing the program into parts. Aer all, we could take any large
program and divide it into parts—the first ten lines, the next ten lines,
the next ten lines, and so on. Rather, it is crucial that each procedure accomplishes
an identifiable task that can be used as a module in defining
other procedures. For example, when we define the good-enough? procedure
in terms of square, we are able to regard the square procedure
as a “black box.” We are not at that moment concerned with how the
procedure computes its result, only with the fact that it computes the
square. e details of how the square is computed can be suppressed,
to be considered at a later time
Офигеть, Мартин со своим Клин Кодом, значит, просто стырил все идеи и принципы, которые уже были придуманы 30 лет назад?
А ведь некоторые нынешние программисты до сих пор про них ничего и не слышали...
>неинтересную
Поддержу оратора выше. Полегче, формошлёп. Какую такую "неинтересную"? Туда ли ты зашёл, щегол ёбаный?
Хватит лирики. Теперь смотрите чё я надыбал, синхронизировав Anki со старым компом:
(define member?
(lambda (a lat)
(cond ((null? lat) #f)
((eq? a (car lat)) #t)
(else (member? a (cdr lat))))))
или
(define member?
(lambda (a lat)
(cond ((null? lat) #f)
(else (or (eq? (car lat) a)
(member? a (cdr lat)))))))
Сразу говорю, что вывод у них один и тот же, надо сказать какой из вариантов менее говнокодист, и самое главное - ПОЧЕМУ?
Я-то знаю, интересно что вы скажете
Бля, хотел спросить, какой читалкой пользуешься, заметил, что формат названия файла гномовский, посмотрел название файла - там есть название читалки. Бля, ну вот, никакой интеракции, пришлось стирать вопрос.
>>49866
Съеби уже с треда, дебил. Насколько ущербной омежкой надо быть, чтобы в треде про Х на вопрос как сделать X' начинать ныть про то, что "мам ну ни нада делать Х и X', мам ну скажи им, мам я не тупой прост ни нада это делать, запрети им". Быдло обоссанное, блядь.
>>49799
Хм, почему? Наоборот же, если число НЕ является нетривиальной квадратной хуевиной, то число (может быть) простое. Они же пишут: если нетривиальная хуевина существует - то n не простое. А существует она тогда, когда a^2 mod n = 1. Так ведь?
>которые уже были придуманы 30 лет назад?
Тащем-то так и есть всегда говорил, что клин код - унылая тягомотина кстати, не представляю кто все это реально может читать с умным лицом и думать, что занимается чем-то полезным, в хтдп кстати все это есть (и при этом это вводный курс про то как программировать вообще, то есть тебе сразу с самого начала показывают, как нормально делать чтоб нормально было, а не говнокодить лишь бы работало)
>>49903
Первый - это как сделал я.
Второй - как было в книжке.
Мне стоило некоторых усилий понять, почему в книжке было не так, как у меня.
Пришёл к выводу, что #t в результатах cond это уже само по себе говнокод.
Вообще, если в условии стоит предикат и #t, то это повод задуматься над тем, не стоит ли это условие засунуть в состав OR, поскольку любое условие в составе OR при правдивости и так вернёт #t и прекратит разбор, так что не понадобится лишних определений вида cond () #t, т.к. они оправданы только если нужно переопределить вывод. В первом случае ((null? lat) #f) действительно переопределяется вывод, т.е. вместо #t там #f. А во вторых двух вывод стандартный в рамках данного выражения, поэтому вариант с OR чище и читаемее.
заморачиваться стилистикой в схеме...
>OR при правдивости и так вернёт #t
Вот такое вот выкраивание - это и есть говнокод.
А в первом варианте - хвостовая рекурсия.
>А в первом варианте - хвостовая рекурсия.
Опять баззвордами раскидываешься?
Хвостовая рекурсия там в обоих вариантах, даун
>>49916
>Вот такое вот выкраивание - это и есть говнокод
Представь функцию, которая переводит буквы из строчных в заглавные в ascii.
Можно сделать тристапятьдесят мильёнов if-else "является ли эта буква буквой а", "является ли эта буква буквой б" и так далее, а можно просто вычесть из номера расстояние от любой строчной буквы до соответствующей заглавной, и получится то же самое, только в триста раз короче и элегантнее.
Вот тут то же самое, только лайт версия. Можно наговнокодить тысячу проверок () #f, а можно красиво и кратко
Сам ты даун, лол.
Я просто немножко затупил - отправил пост, и тут же понял, что и в первом варианте тоже хвостовая.
Однако, это не меняет того факта, что первый вариант значительно лучше читается, а второй - попахивает говнокодом.
Тебя, пидараса, хвалят, можно сказать, а ты чем-то недоволен.
>Тебя, пидараса
Я же не твой батя.
Можно сегодня без похвалы от мистера "я делаю тридцатый метод в битриксе для управления хуйнёй_нейм, потому что я тридцатый по счёту погромист, которому пришлось работать с хуйнём_нейм"
>>49922
>Индентировать код пробовал?
Он и был индентирован, Anki всё сожрал, там же хтмл внутри.
>Он и был индентирован
В чем тогда проблемы с читабельностью могут быть (в первом варианте)? Кроме кривых имен.
Алсо, "красиво и кратко" - это пикрелейтед, а не твоя портянка. :3
>Алсо, "красиво и кратко" - это пикрелейтед
>не схема
Не впечатлил.
>В чем тогда проблемы с читабельностью могут быть
Обычные проблемы, как когда лисп-образный код читаешь.
>в битриксе
Проекции такие проекции.
Всегда подозревал, что самые активные сикпоёбы итт - это те, кто зарабатывает на жизнь битриксом, лол.
>не схема
Эм, ты в уме не можешь в схемовский синтаксис перевести, или что? При чем тут вообще язык, если речь об алгоритме.
>Обычные проблемы
Телепаты как бы в отпуске, никто не ебет, что там у тебя за проблемы, чувак.
>Эм, ты в уме не можешь в схемовский синтаксис перевести, или что?
Нет, если мне незнакомо на чём ты это писал.
Ты предлагаешь мне гуглить редьюс и разбираться самому?
А может лучше сам попробуешь на схеме черкануть, вместо того, чтобы переводить игру к себе на поле? Иначе ты хуй собачий, если кому-то вякаешь за код на схеме, а сам приводишь кложевский (это кложа?)
Перевод слов или их значение в контексте? Первое да, второе нет, как кстати и не знаю смысл квадратных скобок, ибо я не лиспоёб и не рассматривал другие диалекты. И кстати это не имеет отношения к теме разговора (не пытайся перескочить на "фуу ебать не не знаешь ненужную/нужную хуйню, которую знаю я")
Зато имеет отношение к теме тот факт, что ты сам прекрасно понимаешь, что на схеме так коротко не написать, но предъявляешь мне за код на схеме.
Тем, что я на видосиках увидел эти жуткие старые машины, которые выводят оутпут непонятно какого языка. И у меня сразу тригернулись воспоминания с универа, где у нас тоже был какой-то старый-престарый курс, где мы составляли микросхемы на какой-то стрёмной проге из 80ых или 90ых годов.
И я сразу подумал, что мне нужно будет запускать какой-то жуткий емулятор с интерфейсом как в ДОСе и вечно придётся бороться с непонятным языком и интерфейсом.
Но сейчас, решившись изучить SICP, я офигел от того, на сколько язык по своей сути прост. И мне не пришлось скачивать никаких емуляторов ДОСа - все интерпретаторы, какие нужны есть в интернете. И вещи, про которые пишет книга - типичные вопросы на интервью и тот же жаба 8 стрим АПИ.
Господи, почему я так поздно начал изучать эту книгу???
>И я сразу подумал, что мне нужно будет запускать какой-то жуткий емулятор с интерфейсом как в ДОСе
У меня для тебя очень хуёвые новости, такой интерфейс называется Unix CLI и юзается в т.ч. в топовых вузах планеты.
https://youtu.be/EApk15pCIEA?t=49m36s
Эм... если ты не знаешь, что такое фолд/редьюс, то ты попросту не имеешь отношения к программированию, лиспоебство тут ни при чем. Это нормально (тут тред для совместного обучения ньюфагов), но для ньюфага ты что-то слишком много выебываешься. Лучше бы вместо того, чтобы триггериться и оправдываться, просто задавал вопросы, если что-то непонятно - тебе тут многие рады будут все объяснить.
>что на схеме так коротко не написать
Ну вот рэкет запустил:
> (define (member? a xs) (foldl (lambda (x p) (or p (= a x))) #f xs))
> (member? 1 '(1 2 3)) #t
> (member? 0 '(1 2 3)) #f
Лол, видосики там олдскульные конечно. На самом деле вроде есть записи прочитанных недавно лекций, если поискать - найдешь, но я почти уверен, что там преподы все равно пишут не в repl.it, а в имаксе, лол.
>типичные вопросы на интервью и тот же жаба 8 стрим АПИ.
Угу, ето так. Кстати, автор спецификации джавы - Гай Стил, тот самый, который придумал scheme (язык использующийся в сикпе). Ньюфаги не знают, олдфаги не помнят, но вообще-то намерение дизайнеров джавы было в том, чтобы затащить с++ говнокодеров одной ногой в лисп точную цитату можешь погуглить, что-то типа "drag half-way to lisp".
Алсо, автор стрим апи (Брайан ГОЙец) - тот еще элитист, ненавистник говнокодеров и ООПущенцев и сторонник/одобрятель функциональщины.
Ну и лучше поздно, чем никогда, согласись ;)
>foldl
Фолд же будет мурыжить весь список, даже если искомый элемент - первый. Потому, что он не для этого.
А так красиво, да.
В кложе - не будет, если написать правильно (там можно обернуть значение в reduced, чтобы оно сшортсыркуитилось при редакшене). В х-ле по идее тоже не будет, ибо фолд там ленивый. В схеме вот не уверен, как это чотко сделать без реализации своего short-circuit фолда, может знающие подскажут.
ПЕРВЫЙ РАЗ ВИДИМ, ПРИКИНЬ!
> Эм... если ты не знаешь, что такое фолд/редьюс, то ты попросту не имеешь отношения к функциональщине
Пофиксил говноеда
Почему дауны верят на слово другим ДАУНАМ вместо того чтобы ПОГУГЛИТЬ
http://web.mit.edu/alexmv/6.037/
> Они же пишут: если нетривиальная хуевина существует - то n не простое. А существует она тогда, когда a^2 mod n = 1. Так ведь?
Ну да, пишут, что нетривальный корень - это число не равное 1 или n-1, которое возникает перед возведением в квадрат.
Можешь, пожалуйста, привести пример работы алгоритма при a=2 n=7. Так будет проще всего
n - простое
a < n
a^(n-1) = 1 mod n
a=2, n=7
2^(7-1) = 64
64 mod 7 = 1
2^2 = 4
4 mod 7 = 4
4 != 1 => нетривиальный корень не существует => n простое
А где на них ответы рыть, может у меня неправильный ответ, как я узнаю?
> Господи, почему я так поздно начал изучать эту книгу???
В точности мои мысли. Я её купил на втором курсе по какой-то адской цене (больше 1к, это даже сейчас за книгу дохуя), прочитал введение, испугался, что СЛОЖНО и оставил пылиться на книжной полке до окончания аспирантуры, убеждая себя, что ну вот в этом-то семестре летом точно займусь. Таки занялся и страшно жалею, что прямо тогда же её всю и не прорешал.
> Где посмотреть ответы на задачи?
Может, шапку начать КАПСБОЛДОМ БЛЯДЬ набирать, чтобы нуфаги перестали в глаза ебаться?
Нахуй книгу то покупать? В электронном варианте все есть. Или ты хочешь пыль потом с неё стирать и искать место на полке для неё?
>мы проверяем, не нашли ли мы "нетривиальный квадратный корень из 1 по модулю n", то есть число, НЕ РАВНОЕ 1 ИЛИ N - 1
Цитата из книги. Тут же прямым текстом даётся, что нетривиальный корень - это всё, кроме единицы и n - 1.
Даже если по твоей логике, смотри:
n - простое
a < n
a^(n-1) = 1 mod n
a=2, n=7
2^(7-1) = 64
64 mod 7 = 1
2^2 = 4
4 mod 7 = 4
4 != 1 => нетривиальный корень не существует
(4 2) mod 7 = 1
Ну и последнее возведение в квадрат (это (2^3)^2)
(1 1) mod 7 = 1
1 == 1 => нетривиальный корень, число n - составное
Я вот только начал вкатываться в питон по книге "Укус Питона". Когда мне стоит приступать к SICP? Как закончу ее или раньше/позже?
Блять, что такое вообще "корень из 1 по модулю n"? У меня голова взрывается.
>Малой теоремы Ферма, которая состоит в том, что если N - простое число, а а - произвольное пложительное целое число меньшее n, то а в n - 1-ой степени равняется 1 по модулю n
Тут, например, я 10 минут ломал голову, пытаюсь понять нахуя делают 1 mod n, после чего понял, что это из степени извлекают остаток
>пытаюсь понять нахуя делают 1 mod n, после чего понял, что это из степени извлекают остаток
Ээ, погугли что такое "арифметика по модулю". На первом курсе любой техшараги же изучают.
>>50535
Многабукавнечитал, на всякий случай перечитай мой первый ответ тебе:
>Наоборот же, если число НЕ является нетривиальной квадратной хуевиной, то число (может быть) простое. Они же пишут: если нетривиальная хуевина существует - то n не простое. А существует она тогда, когда a^2 mod n = 1.
Так?
Всё это отлично применимо в веб-макакинге.
После творческого переосмысления.
Тем более, что js-макакинг уверенно движется в сторону функциональщины и реактивщины. И обычная макака такие вещи не понимает, и считает просто магией. А необычная макака - получает конкурентные преимущества.
Он не просто движется, он уже приехал тащем-то.
Стоп, а сикп разве про функциональщину? Обходил его стороной только потому что думал, что это про ебаное ооп.
ну ты и еблан братишка.
Да чувак,мало того,что ооп,ещё и императивщиной приправлен,мерзкая хуйня.
Не ведитесь на борщепропаганду местных скорбных аутистов.
Забудьте про SICP. Читай «Алгоритмы и структуры данных» Вирта, читай Седжвика и Кормена, читай Кнута, в конце концов. Там есть все.
> Забудьте про SICP. Читай «Алгоритмы и структуры данных» Вирта, читай Седжвика и Кормена, читай Кнута, в конце концов. Там есть все.
Вирт, Кормен и Крут хороши, но ни разу не заменяют SICP. Читать нужно всё.
А ещё прежде чем перейти к алгоритмам, надо бы читнуть дискретки, ОС, архитектуры пк, сетей, БД, и вся эта хуйня пойдёт после сикпа куда лучше, чем до.
А после алгоритмов она вообще не пойдёт, ибо усадить ньюфага за кормена это лучший способ отбить ему навсегда желание вкатываться.
Для попытки сократить рынок конкурентов эта - слишком жирная уж куда жирнее, чем совет начинать с сикпа
>Читай «Алгоритмы и структуры данных» Вирта
>читай Кнута
))
Ты сам не читал ни одной из этих книжек, не так ли?
За три года я прочитал том кнута. Но это чо то вроде чам в день
Это же куча денег.
Где посмотреть?
Хуй знает, что там переписали на питон.
В блядском питоне даже лямбд нормальных нет, хули там переписывать?
1) Почитай про Парадокс Блаба
2) > Язык
Для примеров и практики в книге используется язык Scheme (Ским), созданный авторами курса. Это один из диалектов семейства Lisp. Как и полагается любому Lisp-языку, Scheme имеет примитивный синтаксис, который можно изучить буквально за несколько часов. Он очень необычен для тех, кто имел дело только с широко распространенными языками, но обладает рядом серьезных достоинств, о которых говорится в книге.
Его выбор, в качестве основного языка для курса обоснован тем, что Scheme позволяет сосредоточиться на сути вещей вместо синтаксиса, увидеть чистые концепции в первозданном виде. Scheme как и любой Лисп, обладает невероятно высокой выразительностью благодаря тому, что в языке всё есть выражение, а инструкции отсутствуют вообще.
Вторая причина — гомоиконность. Свойство языков, в которых данные и код — одно и тоже. Этот тезис сложно понять на словах, его нужно прочувствовать на практике. Есть еще и третья причина — макросы, но они в книге не используются.
Ссылку в студию.
>Почитай про Парадокс Блаба
>Lisp is so great not because of some magic quality visible only to devotees, but because it is simply the most powerful language available
Аргумент уровня /sicp
SICP - the most powerful book available
LISP - the most powerful language available
С козырей зашёл))
>сн ормальным языком программирования?
Так в SICPе изначально используется нормальный язык программирования.
Переписали на кучу языков, но толку от этого ровно ноль. Схемка там специально используется потому что она простая как дерево. Какой смысл использовать для обучения вместо нее какой-то навороченный сложный язык? Это же глупо. Книга не про язык, а про программирование.
Хуй знает, я такими извращениями не занимался, но тащем-то подойдет любой, где есть scheme. Могут быть маленькие отличия с книжками (типа немного других имен функций), но это мелочи.
Двачую, тоже хотел спросить, но стеснялся.
Это те двое ребят беспокоятся
Мне конкретно похуй лично
Особенно после того, когда ты дропнул хтдп из-за какой-то хуйни
> Это те двое ребят беспокоятся
> Мне конкретно похуй лично
Тупо с языка сорвал, тоже хотел сказать насколько мне похуй.
Это само собой
>Однако не нужно их боготворить. Из ленты твиттера легко выглядеть страшным, но если посмотреть, как они работают в реальной жизни, то увидите, что они не такие выдающиеся. Везде хаки и т.д. Все мы просто экспериментируем.
Золотые слова.
Алсо, проиграл с этого:
>Мой конфиг Emacs в бардаке. Я не знаю, почему у меня сломано автодополнение OCaml (уже более месяца). Я не автоматизирую вещи и приходится иногда копаться в истории шелла, чтобы найти нужные команды.
Братишка, дай-ка я тебя обниму!
Вообще, отличные советы, люто двачую. Видно, что чувак реально пишет из собственного (успешного) опыта.
>>54831
>>54834
>>54878
Алё, математики хуевы, это же метод прямоугольников, на 2 курсе проходят.
https://ru.wikipedia.org/wiki/Метод_прямоугольников
Где тут прямоугольники увидел? Тогда там получается идет постоянное увеличение стороны f(a + dx + dx/2) + f(a + 2dx + dx/2) и т.д.
Типа один прямоугольник накладывается на предыдущий, поменьше. Это ж бред.
И что тут тогда dx? Если сторона прямоугольника, то это должна быть нижняя сторона, потому что на неё в конце идет умножение, т.е. размер нижней стороны каждого прямоугольника. Что тогда она делает внутри скобок? Зачем её плюсуют?
на википедии про способ "прямоугольников" все понятно, но тут ничего не ясно
> Типа один прямоугольник накладывается на предыдущий, поменьше.
Они не накладываются, посмотри внимательнее на формулу.
>>54957
Через dx в книге зачем-то обозначен шаг, который все всегда обозначают через h. Если что, h = (b-a)/n . С учётом этого в сикпе совершенно очевидно приведена формула метода средних прямоугольников.
Лиспаны, если у вас так плохо с математикой, надо было с HtDP начинать, он для гуманитариев.
Или просто забить на то, что обозначают формулы и как они получаются, просто выполняя то, что необходимо исходя из условия упражнения.
Я так и сказал.
That's the spirit!
Я тож сначала все начал усложнять из-за []dx
Но тут [] - это просто скобка, а dx - это просто длинна отрезкОВ на которые делим ось для вычисления площадей, а не часть обозначения.
Если тебе будет понятнее
от a до b. делим по маленьким cdx
0. a + c/2 - середина нулевого отрезка
f(a+c/2) - значение в этой точке
f(a+c/2) c - площадь полученного прямоугольника
1. a+c/2 + с - середина следующего "первого" отрезка
f(a+c/2+с) - значение в этой точке
f(a+c/2+с) c - площадь полученного прямоугольника
...
N. a+c/2 + Nс - середина N-го отрезка
f(a+c/2+Nс) - значение в этой точке
f(a+c/2+Nс) c - площадь полученного прямоугольника
И так пока не достигнем последнего отрезка. Если a=0, b=1,c=0.1 - то отрезков будет 10
Сложив все, получим как раз общую площадь этих прямоугольников. Т.е. приблизительное значение интеграла по ней, которое будет тем точнее чем меньше с.
Ну а вынеся c за скобку, как раз
(f(a+c/2) + f(a+c/2+с) +....+ f(a+c/2+Nс))c
Тут не разложение в степени, не трапеции, не параболы, а просто прямоугольники.
Ну поищи. Интернет большой, где-то будет книга в которой будут задачи
"У пони 4 ножки и 1 рог. На поле пасется табун пони. Давайте напишем код для Даши который..."
Или что там тебе интересно и нужно.
Если ты про интеграл, то там вообще выбран самый простой метод, даже в ущерб полезности.
Ну вообще элементарщина. Гуглится 5 мин.
Блять, перепутал с нюфаг-тредом, сорре
Вот не надо к нам весь трешак сливать.
В web полно программирования и "problem solving", но вот из-за таких вот набежавших "установщиков вордпресса".....
Scheme, конечно. Смотри, какой охуенный ООП
> Торадиция, брат, извини.
Ничего, я понимаю. Скоро они все в ML схлынут и "веб разработчик" опять зазвучит гордо.
> >если ты про интеграл
> Ты хоть номера постов сравнить можешь, умник?
А ты оператором "если" прости не могу назвать тебя также?
Через онлайн редактор или ставите интерпретатор а потом в любимой IDE
apt install mit-scheme
IDE Setting-> RUN-> "scheme <%f"
О, опец! :3 Ты немного путаешь аргументы функции и глобальные переменные. Те имена, которые ты пишешь в (lambda (ВОТЗДЕСЬ) ...) - они доступны только ВНУТРИ функции. То есть ты на них не можешь как-то снаружи повлиять, кроме как вызвав функцию с нужными аргументами: (shorter первыйлист второйлист).
Алсо, ты что ли не проверяешь в репле каждую функцию после того, как ее определил? Типа просто пишешь определение, жмешь run, запустилось - значит работает, лол? А что именно она делает и совпадает ли это с тем, что тебе надо - это типа похуй, лол? У тебя ведь нижнее окошечко специально для того, чтобы ты там свои функции вызывал.
Для более навороченного тестирования есть https://docs.racket-lang.org/rackunit/, но тебе это пока не надо. Просто вызывай свои функции с разными аргументами и проверяй, что они правильно работают. Алсо, всегда обращай внимание на крайние случаи: например, если твоя функция принимает список - проверь, работает ли с пустым списком. Если принимает число - проверь, работает ли с нулем в качестве аргумента, или с отрицательным числом, и т.п.
Хорошо, это понял. Но как мне задать, например Х, чтобы он был равен 5 и посмотреть, что программа выдаст? Через define и знак равно пробовал, пишет, мол Х не определен, мол функция не знакомая, что-то такое.
(shorter (list 1 2 3) (list 4 5 6 7))
Прогу толком не посмотрел, тебе надо списки подставлять, ну я думаю ты понял
(define s1 (list 1 2 3))
(define s2 (list 4 5 6 7))
(shorter s1 s2)
нет смысла
правильно, вычитать надо 5, то есть половину от высоты земли
это из-за того, что у тебя координаты НЛО - это координаты середины НЛО, а не её нижней части
HEIGHT - высота всей картинки
Если располагать НЛО на этой высоте, тупо HEIGHT, то будет торчать лишь половина НЛО
Поэтому там вычитается также не вся image-height, а делённая на два, так как половина и так торчит
землю ты располагаешь по той же системе, как и НЛО
то есть ты должен вычесть из HEIGHT половину высоты земли
А у тебя земля располагается по высоте HEIGHT
То есть у тебя торчит не 10 пикселей, а 5
в общем когда GROUND размещаешь, надо не HEIGHT
а (- HEIGHT 5) (минус половина от высоты земли)
И тогда всё будет окей, и можно будет вычитать законные 10
Похоже придется скалу брать, хотя это тоже смесь как и джс, и вообще она в вакансиях часто с джавой в связке встречается. Почему именно с джавой?
Сейчас подумал, скорее всего это будет Go, или Scala как второй вариант. Что-то чисто фпшные языки не особо востребованы судя по вакансиям. Но я еще не скоро закончу книгу, и вообще медленно двигаюсь из-за работы, слишком выматывает. Еще и htdp хотел прорешать... Поэтому неизвестно когда начну что-то другое учить, там мб и поменяется что-то на рынке.
Guile
так хтдп проще сикпа гораздо, если сикп плохо заходит, то сначала хтдп накати
если нормально, но просто забей на хтдп
а насчёт ЯПов
Erlang точно используется в продакшене с хорошей зарплатой
а у Elixir очень хорошие перспективы, мб взлетит ещё
Рубистов явно больше
Помню, как начинал сикп и читал про хвостовую рекурсию там, прямо в книге писали "как же это охуенно".
Вопрос назрел а нахуй нажна оптимизация хвостовой рекурсии? Чтобы что? В сикпе авторы топят за "простые математические описания", но если скажем тот же факториал рекурсивно расписать "просто математически", то там будет обыкновенная рекурсия со всеми вытекающими (попробуй возьми факториал сильно большого числа и привет переполнение стека).
Это я про n = n + fact(n -1). Хвостовая рекурсия это не этот случай, ведь надо же где-то хранить n.
Чтобы всё работало, надо пилить особую, уличную функцию, которая будет брать два аргумента вместо одного. И это уже нихуя не очевидно в сравнении с чисто рекурсивным определением. И что это в итоге даёт? Определение хвосторекурсивной функции имеет в моих глазах тот же уровень очевидности и простоты, что и итеративной. Да и в глазах компилятора тоже.
К чему тогда весь этот цирк, чтобы что? Чтобы иметь возможность при случае взять не весь факториал, а кусок факториала от такого-то числа m до такого-то числа n? Хм, охуеть полезно.
Короче мысль моя такая, что хвостовая рекурсия - это просто чьи-то хотелки.
Моя мысль в том, что тсо не господь бог и оно умеет превращать в цикл только то, что и без него можно было сделать циклом.
Ты будто вообще не читал мой пост.
Вот если бы компилятор мог взять моё n + fact(n - 1) и сделать их этого цикл, то я бы преклонился перед могуществом его создателей.
Но он может сделать цикл только из того, из чего я и сам могу. Ну и зачем тогда мне такой функционал? Ответ - синтаксический сахар и более ничего.
В функциональных языках нет циклов и с точки зрения теории они избыточны. И именно они являются синтаксическим сахором, а не рекурсия.
мимо
хуя
Хорошо стелешь, да только вот цикл не засирает стек миллиардами открытых фреймов, а рекурсия засирает.
> Хочется развиваться, сам react разработчик
Очевидный clojurescript + re-frame/om очевиден. Если ты толковый спец, то тебя оторвут с руками (в том числе на удаленку в европку но учти, что конкуренция высокая, нужно быть реально сеньором-помидором не уровня /b), плюс тебе не нужно учить еще и новый стек в дополнение к новому языку, ну и вообще переучиваться не нужно, все новые знания у тебя будут логическим продолжением старых. А после этого через кложескрипт можешь и на обычную жвм-кложу пересесть да микросервисы поклепать, а там уже и до скалы рукой подать, если захочется.
>Почему именно с джавой?
Потому что она на jvm, очевидно.
>И это уже нихуя не очевидно в сравнении с чисто рекурсивным определением.
Очевидное определение факториала - это fold (*) [1..n].
Хвостовая рекурсия нужна 1) для языков без циклов циклы - синтаксический сахар, анон выше все верно сказал 2) для более естественного выражения алгоритмов над иммутабельными данными. Цикл подразумевает изменение переменных, хвостовая рекурсия - нет.
>>56551
Хвостовая - не засирает, мимокапитан.
>Очевидное определение факториала - это fold () [1..n]
Нет. Очевидное определение факториала я написал выше, его можно понять без знания программирования вообще. fold () [1..n] - нельзя.
>Хвостовая - не засирает, мимокапитан.
Мимонечитавший диалог, ты хотел сказать? Я о том и говорил, что нормальное рекурсивное определение очевидно для читающего, но не обрабатывается компилятором как хвостовая рекурсия, а чтобы обрабатывалось его надо переделать в неочевидное подобие цикла.
>Нет.
Факториал в математике определяется как произведение чисел от 1 до n проверь сам с помощью поисковой системы. Ничего общего с твоим неправильным, кстати определением это не имеет, зато имеет все общее с моим. Тот факт, что я записал его в немного другом синтаксисе, не влияет ровно ни на что. Приведенное выше определение на русском языке немецкому математику понятно тоже не будет, но менее очевидным оно от этого не станет.
>Мимонечитавший диалог, ты хотел сказать?
Нет, я не хотел этого сказать. Перечитай еще раз вот с этого поста: >>56491 - особенно последнее предложение.
> Ничего общего с твоим неправильным, кстати определением это не имеет, зато имеет все общее с моим
Мы, долбоёб, говорили о рекурсии.
>Нет, я не хотел этого сказать
Разумеется не хотел, зачем же тебе выставлять напоказ тот факт, что ты нихуя не понял о чём речь идёт.
Только зачем в таком случае в чужой разговор встревать, разве что ради троллинга тупостью.
> неправильным, кстати
И да, с этого момента поподробнее, будет забавно посмотреть как ты вновь начнёшь срать под себя в попытках доказать, почему же оно неправильное.
Подсказка: эта строчка - не единственная в функции (на случай если решишь подрубить дурочку), она входит в состав условного выражения.
> И да, с этого момента поподробнее
По твоему определению, 6! = 1+2+3+4+5+6=21. Верное значение 6! = 720.
Прежде чем рассуждать о хвостовой рекурсии, в которой ты нихуя не понимаешь, сначала вылечи свою дислексию.
мимо сикпанавт
>По твоему определению, 6! = 1+2+3+4+5+6=21. Верное значение 6! = 720.
Ты дебил?
>сначала вылечи свою дислексию
Только после тебя, долбоёб прикапывающийся к случайному плюсу вместо звёздочки. Ты ведь всё прекрасно понял, но за неимением ничего лучшего доёбываешься до промаха по клавише, ведь по сути вопроса сказать нечего. Щас ещё доебёшься до n вместо fact(n) в левой части, эдакий скоморох.
И прекрати под каждым постом писать "мимо", мимо это предупреждение о том, что автор поста не сможет участвовать в дискуссии, а ты ещё как можешь, всё тут засрал своими "мимо"-воплями.
>к случайному плюсу
Ага, в двух разных постах. Оправдываться передо мной не надо, пиздуй к невропатологу.
> И прекрати под каждым постом писать "мимо", мимо это предупреждение о том, что автор поста не сможет участвовать в дискуссии, а ты ещё как можешь, всё тут засрал своими "мимо"-воплями.
Под кроватью у тебя тоже Семён? Я даже не знаю, что такое fold, лол.
>Ага, в двух разных постах
Не вижу противоречий. Слыхал про "абстракции", это такая хуйня когда написал что-то и потом обращаешься с этим чем-то как с примитивом, не вспоминая что у тебя там опечатка
>Оправдываться передо мной не надо
Но при этом ты тут же оправдываешься передо мной, рассказывая какой же ты не семён, и ты даже значение "fold" не знаешь. Жалкое зрелище.
Ты так и не пояснил, каким образом ты сделал такое хитрое умозаключение, как "сделал опечатку в формуле да пусть даже не опечатку, предположим я реально не знал или не помнил что факториал это не суммирование => не понимает что такое хвостовая рекурсия"
И какое отношение имеет заявление "циклы это синтаксический сахар" к собственно рекурсии? Циклы это не синтаксический сахар над рекурсией, а скорее тогда уж над конструкцией с условным переходом (с этим можно поспорить, но суть в том что по крайней мере к рекурсии эта богадельня отношения не имеет).
Пока единственный более-менее аргумент, который тут всплыл, это "Цикл подразумевает изменение переменных, хвостовая рекурсия - нет". Правда он всё равно не даёт ответа на вопрос "почему сассман считает, что делать функцию-обёртку для другой функции, которая вызывает себя с новыми аргументами в конце - столь охуенный подход в сравнении с использованием цикла (будь он хоть тысячу раз синтаксическим сахаром над чем угодно, это не столь важно, главное что он ЧИТАЕМЕЕ хвосторекурсивного аналога, и в то же время вместе с ним проигрывает в хламину по читаемости простому рекурсивному определению, которое однако забивает стек)"
> каким образом ты сделал такое хитрое умозаключение, как "сделал опечатку в формуле да пусть даже не опечатку, предположим я реально не знал или не помнил что факториал это не суммирование => не понимает что такое хвостовая рекурсия"
Да ты же сам написал,
> Вопрос назрел а нахуй нажна оптимизация хвостовой рекурсии?
Пиздец ты у мамы манявратор.
>Да ты же сам написал,
>> Вопрос назрел а нахуй нажна оптимизация хвостовой рекурсии?
Так а причинно-следственная связь где, не подскажешь?
Когда из факта "сделал опечатку в формуле факториала" следует вывод "не понимает что такое хвостовая рекурсия", потому что ...
Вот на месте многоточия и должна была быть твоя цепочка умозаключений, приведшая от первого ко второму.
Если ты настолько тупой, что решил что это и должна была быть хвостовая рекурсия, то поздравляю, у тебя дислексия. Ибо я прямым текстом написал, что n fact(n-1) это ПРОСТОЕ РЕКУРСИВНОЕ ОПРЕДЕЛЕНИЕ, не хвосторекурсивное а просто рекурсивное.
Разжую:
1. ПРОСТО РЕКУРСИЯ
fact(n) это:
если n = 1 то верни n
иначе верни n fact(n-1)
2. ХВОСТОВАЯ РЕКУРСИЯ
fact(n, произведение) это:
если n = 1 то верни произведение
иначе верни fact(n - 1, произведение * n)
Вызываешь всю эту дребедень как fact(твоё число, 1), либо рисуешь обёртку которая сама вставит единицу вместо тебя
3. ИТЕРАЦИЯ
fact(n) это:
произведение = 1
пока n > 1
(умножь произведение на n
отними от n единицу)
верни произведение
Вопрос в том, почему автор считает, что второй вариант дохуя понятен и читаем в сравнении с третьим и вообще столь же понятен, сколь и первый?
>Да ты же сам написал,
>> Вопрос назрел а нахуй нажна оптимизация хвостовой рекурсии?
Так а причинно-следственная связь где, не подскажешь?
Когда из факта "сделал опечатку в формуле факториала" следует вывод "не понимает что такое хвостовая рекурсия", потому что ...
Вот на месте многоточия и должна была быть твоя цепочка умозаключений, приведшая от первого ко второму.
Если ты настолько тупой, что решил что это и должна была быть хвостовая рекурсия, то поздравляю, у тебя дислексия. Ибо я прямым текстом написал, что n fact(n-1) это ПРОСТОЕ РЕКУРСИВНОЕ ОПРЕДЕЛЕНИЕ, не хвосторекурсивное а просто рекурсивное.
Разжую:
1. ПРОСТО РЕКУРСИЯ
fact(n) это:
если n = 1 то верни n
иначе верни n fact(n-1)
2. ХВОСТОВАЯ РЕКУРСИЯ
fact(n, произведение) это:
если n = 1 то верни произведение
иначе верни fact(n - 1, произведение * n)
Вызываешь всю эту дребедень как fact(твоё число, 1), либо рисуешь обёртку которая сама вставит единицу вместо тебя
3. ИТЕРАЦИЯ
fact(n) это:
произведение = 1
пока n > 1
(умножь произведение на n
отними от n единицу)
верни произведение
Вопрос в том, почему автор считает, что второй вариант дохуя понятен и читаем в сравнении с третьим и вообще столь же понятен, сколь и первый?
>Ооооооо, скобочки!
В коде на клжс скобочек раза в полтора меньше, чем в коде на жс+жсх, кстати. Меня до сих пор вымораживает неудобное чужеродное жсх-говно с препроцессором вместо православного [:tag.class ...]
Ну цикл же
Пусть на си - https://pastebin.com/XT2XA7cX
Не знаю, может ли схема в циклы, но это и не имеет значения, главное что вот эта сишная функция такая же неочевидная в сравнении с простой рекурсией, как и хвостовая рекурсия.
Но в книге чётко помню: имело место нахваливание хвостовой рекурсии и увещевание, что TCO улучшает потенцию и избавляет от болезней, хотя по факту выходит неочевидная циклоподобная хуита в противовес простому и понятному (но рекурсивному) первому варианту.
Вот когда первый вариант компилятор сможет переделать без рекурсии, тогда и приходите.
Спасибо, так понятнее
А то ты написал просто
произведение = 1
пока n > 1
Я вот и не мог понять, что за ебала
>то поздравляю, у тебя дислексия
>САМ ТАКОЙЙЙЙ!!!!!111
Тебя мамка в школу собрала уже? Привет ей
>тогда и приходите.
Нет, это ты тогда и приходи. На твои вопросы тебе ответили еще постов 10 назад. Что еще непонятно-то?
Лисп в книжке короткий и простой. Учиться даже не за день а за одну главу.
Пригодится при работе в emacs. Ты только начни, и тебя уже будет не остановить в создании идеальной среды разработки имени тебя.
Я вам покушать принёс:
https://scanlibs.com/how-design-programs-introduction-programming-2nd/
Свежачок, 2018.
Правда, там только блядский epub, но, в pdf можно конвертировать через calibre.
Ну, это оформлено в виде нормальной книги.
И эта книга продаётся за 56 долларов (ebook):
https://www.amazon.com/dp/0262534800
Как же я охуенно после этого, даже хоть и маленького, свершения себя чувствую. Посоны, если впадаете в хандру и депресируете, то ебашьте сикп — станет легче и почувствуете смысл жизни.
>если впадаете в хандру и депресируете, то ебашьте сикп — станет легче и почувствуете смысл жизни.
Или почувствуете себя последним дауном, если не пойдет :) даже галочку поставлю
Что и требовалось доказать - ты оказался неспособен прочитать мой пост, максимум на что тебя хватило - распознать там знакомую строку.
>>57973
> На твои вопросы тебе ответили еще постов 10 назад.
На вопрос "зачем нужна оптимизация хвостовой рекурсии" был только один отдалённо похожий на аргумент кусочек ответа, и я уже об этом говорил, поэтому придётся цитировать самого себя, ибо тупой даун не может не только читать, но и запоминать мои посты:
>Пока единственный более-менее аргумент, который тут всплыл, это "Цикл подразумевает изменение переменных, хвостовая рекурсия - нет". Правда он всё равно не даёт ответа на вопрос "почему сассман считает, что делать функцию-обёртку для другой функции, которая вызывает себя с новыми аргументами в конце - столь охуенный подход в сравнении с использованием цикла (будь он хоть тысячу раз синтаксическим сахаром над чем угодно, это не столь важно, главное что он ЧИТАЕМЕЕ хвосторекурсивного аналога, и в то же время вместе с ним проигрывает в хламину по читаемости простому рекурсивному определению, которое однако забивает стек)"
>>58551
Видел современный курс мита, который с питоном - так там большая часть примеров и все понятия из сикпа, только вместо схемы питон. Вот прям смотришь и чувствуешь сикп.
Как по мне - шо то, шо это без разницы (ибо об одних и тех же вещах говорят что в сикпе, что в 6001), только подача в видеокурсе намного лучше, а язык немного, но неоправданно сложнее.
Был бы видеокурс с тем же самым построением (чтоб и видосы короткие, и мини-задания со встроенным интерпретатором схемы), но со схемой - был бы абсолютный идеал курса для начинающих погромиздов.
Хотя нет, не идеал. Идеал бы был, если бы они подразгрузили курс от абстрактных математических примеров и поднагрузили наглядными. Вот тогда был бы идеал.
> Идеал бы был, если бы они подразгрузили курс от абстрактных математических примеров и поднагрузили наглядными.
Что может быть нагляднее квадратного корня или интеграла? Деревянные кубики с изображениями мультяшных животных на гранях?
>и в то же время вместе с ним проигрывает в хламину по читаемости простому рекурсивному определению
Это еще почему? Если брать 3 способа нахождения факториала, то цикл точно ГОРАЗДО проще воспринимается, чем другие два. И линейно итеративная будет очевидно на втором месте с большим отрывом от линейно-рекурсивной.
мимо нюфаня, читаю sicp
Вроде бы подобные трюки со списком, включающим самое себя в качестве элемента, невозможно перевернуть без мутабельности, ну т.е. без set-cdr! ну или set-car! там.
Традиционный двусвязный список ты (по очевидным причинам) в функциональном\иммутабельном стиле не сделаешь. Если тебе нужна цикличность представления данных в предметной области, то это всегда делается другими способами (в том числе в императивном стиле), непрямо, индиректно - ну типа там можно использовать айдишники для ссылок на другие сущности в домейне, например. Если тебе хочется именно как ты тут >>60605 написал, то заметь, что это не совсем "кольцевой" в традиционном понимании список (ты не можешь его посередине разорвать и вставить еще что-нибудь туда, например), но рекурсивный список. Такие можно сделать в clojure, haskell или любом другом языке с поддержкой ленивости. Ну то есть суть в том, что ты определяешь список рекурсивно (через самого себя), поэтому он у тебя получается бесконечным (и все должно бы взорваться), но ленивость позволяет не считать его сразу целиком и полностью (молодой человек, это не для вас посчитано), а брать столько элементов, сколько нужно (и потом после обработки выкидывать ненужные, так что потребление памяти остается константным).
Продвигаюсь потихоньку, почти домучал 2 главу учебника.
> а конкретно на racket аналогов нет этим двум?
У меня с #lang sicp всё работает
> можешь привести пример кода?
Ну типа так
(define lst '(1 2))
(set-car! lst lst)
>Ну то есть суть в том, что ты определяешь список рекурсивно (через самого себя), поэтому он у тебя получается бесконечным (и все должно бы взорваться), но ленивость позволяет не считать его сразу целиком и полностью (молодой человек, это не для вас посчитано), а брать столько элементов, сколько нужно (и потом после обработки выкидывать ненужные, так что потребление памяти остается константным).
Это, кстати, называется stream и подробно описано в сикпе в главе 3.5.
спасибо
(require r5rs)
(require 2htdp/image)
(require 2htdp/batch-io)
(require 2htdp/universe)
(require 2htdp/abstraction)
(define lst '(1 2 3 4 5))
(set-car! lst lst)
lst
Результат:
#0=(mcons #0# (mcons 2 (mcons 3 (mcons 4 (mcons 5 '())))))
Может шарящий анон прокомментировать эти два нуля?
(define C (make-st 3 '()))
(define B (make-st 2 C))
(define A (make-st 1 B))
Возможно ли как-то сделать, чтобы правая часть С была А? Может, какая-то процедура есть?
Racket так печатает тебе список, содержащий самое себя, чтобы не засирать вывод бесконечным (((((((((((((((((((((((((((((
Анон, тут тебе не форчан. Я же вроде подробно расписал - я не знаю, что тебе непонятно. Ленивость - это ленивость, стрим - это стрим. Это вообще разные категории.
> Что может быть нагляднее квадратного корня
Квадратный корень сам по себе это хуй с ним, но там же ньютоновский (или чей там) алгоритм нахождения приближения, потом факториалы с Фиббоначчи, башни хануи, короче явный передоз математики. Хотя рекурсию хорошо пояснять на факториале и башнях хануи, но вот всё остальное вполне могло обойтись более жизненными примерами. Хотя в сикпе была задача на размен монет, но она была чересчур заёбистая (или я в то время был такой тупой). Давали бы лучше задачи типа номер кредитки проверить - тоже математика, но жизненная.
это само собой, я имею ввиду как правильно использовать список, получившийся после процедуры той
то есть изменённый lst
как использовать эту ссылку на себя же?
>Хотя в сикпе была задача на размен монет, но она была чересчур заёбистая
Вот, кстати, поддвачну, терпеть не могу такие задачки на жизненную сообразительность)))))))))))))
точно, через car и cdr, по привычке думал только об first, rest
К примеру
#lang racket
(require r5rs)
Здесь я подключаю, по моей логике, стандарт (отдельный ЯП) Scheme, совмещаю его с Racket
Это так, или же это какой-то модуль, инициирующий R5RS?
Как раз таки в курсе. Задача "сколькими способами можно набрать мелочью такими-то монетами такую-то сумму" решается вываливанием всей мелочи из кармана на ладонь и протягивании этой ладони кассиру, чтобы она сама отсчитала, сколько нужно. Я в рот ебал над такой хуйнёй думать.
https://docs.racket-lang.org/guide/classes.html
можешь еще про CLOS сразу читнуть только без фанатизма
>>61391
Так это задача про комбинаторику и алгоритмы, а не про считание мелочи. Просто сформулирована с наглядными предметами, чтобы было легче в голове представить.
гугли #lang sicp
устанавливаешь его
после пишешь
#lang racket
(require sicp)
По идее так всё окей
Или же другой вариант, с (require r5rs)
Кажется тоже рабочий
Бля, по-моему require чисто подключает модули, то есть оно просто доставляет тебе все функции, определенные в стандарте r5rs. А #lang может делать вообще что угодно, он именно говорит ide ракетки, что дальше идет код на таком-то языке (сам язык может быть вообще никак не связан со схемой).
спасибо
Лучше начни с чего попроще, особенно если в математике слаб. Конечно, и с этой книги можно начать, но чтоб ее осилить придется приложить немало усилий и в сочетании с тем, что по мере чтения ты не будешь понимать куда реально можно приложить те знания, которые она дает, есть немалый шанс, что на программирование ты просто забьешь.
HtDp. Если с математикой знаком, то sicp. Все просто
> сколькими способами можно набрать мелочью такими-то монетами такую-то сумму
Вот в этом и кроется переусложнённость.
А надо было вместо этого "напишите прогу для кассира, в которую забиваешь сумму сдачи, а она считает сколько каких монет выдать, чтобы монет было как можно меньше в общем"
Но это не про наш сикп, наш сикп при первой возможности спешит удариться в матан.
Скачал сикпа течпак, там несолько файлов, пробовал, хуй получилось, все через жопу. А r5rs попробовал, вроде нормально. Глубоко не лез, уже засыпаю, но вроде работает. Спасибо.
говорили долбоёбу, читай хтдп
нет, из-за хуйни надо бросить
мог бы задавать вопросы аля почему -> в названии
а на деле имеем то, что имеем
Сказать-то что хотел, рачье? Помочь не можешь - пройди мимо.
Съеби нахуй.
>>62175
Ты можешь положить частоиспользуемые функции в отдельный файлик, будет у тебя небольшой такой воспомогательный модуль, и подключать его в других файлах. Подробнее читай тут: https://docs.racket-lang.org/guide/module-basics.html
>>62182
https://docs.racket-lang.org/sicp-manual/index.html?q=sicp#(part._.Introduction_to_the__lang_sicp_language)
use google, luke
> А какой уровень знания английского вы считаете приемлимым?
Который для меня комфортный. Что за вопросы, блядь? Если понимаешь все, что тебе надо - значит приемлимый, если не понимаешь - значит неприемлимый.
>И как посоветуете поднимать скилл?
Читать книги, которые тебе интересны. Тащем-то все. А, ну и не забудь на телефоне и в системе язык поменять. И видосики смешные, блядь, на английском смотри.
>В среднем я встречал 1-3 незнакомых слова на абзац.
Ну так это вообще норм, в чем проблема-то? Дочитал бы книжку до конца - был бы у тебя уверенный технический английский.
>чтобы в голове более точно перевести на русский
Сука, блядь, ты дебил? Нахуя ты в голове на русский переводишь, уебок? Ух блядь, пизды бы тебе дал, если бы ты мне такое в лицо сказал, долбоеб сука! Не делай так больше, блядь, читай и все.
>Но реально ли вообще обходиться без перевода в голове, если ты живешь в России и все вокруг на русском языке?
Реально, если ты не конченый долбоеб. Ты не поверишь, но все так и делают, никто не переводит в голове, за исключением нерадивых школьников. Просто читай каждый день и все, это очень быстро приходит с практикой.
Спасибо, а то у меня из-за этих функций обучение приостановилось. Но 2 главы из 12 прошел успешно. Сейчас только 2 главу слегка перешерстить, закинуть в файлик все функции, описать их в документе и можно двигать дальше :З
А ты, кстати, прям в файлике и описывай все функции, как в хтдп делают:
; Missile Image -> Image
; adds m to the given image im
(define (missile-render m im) im)
То есть пишешь:
- аргументы функции и что она возвращает
- краткое описание в одну строчку на английском
- ну и дальше можешь какие-то свои замечания по-русски написать
Например, как-то так:
; List -> Boolean
; checks if the list `lst` is empty
(define (empty? lst) ...)
Это тебе и для английского полезно будет, и для кодинга.
ХОрошо, спасибо.
(define b (+ a 1))
(+ a b ( a b))
(= a b)
(if (and (> b a) (< b ( a b)))
b
a)
Не понимаю что означают в конце переменные b a ). Тип если 4 > 3 and 4 < 12 то b a) Как это понять?
Ну у тебя два варианта решения задачи. Если все забись, условия там совпали, То первый вариант (b), если не совпали, равенство там не равно или ложь, То второй вариант, т.е. а.
Но я оп и дебил, поэтому может не прав.
Синтаксис if глянь
(if условие
вернуть-если-выполнилось у тебя b
вернуть-если-не-выполнилось у тебя а)
И поди прочь.
Мы тут учим программирование а не синтаксис
Какое нахуй тичпаки редактировать, ты совсем там страх потерял? Тичпак - это считай часть дистрибутива рэкета. Это примерно как если бы тебе в системе надо было шрифт поменять и ты бы предлагал лезть внутрь нее и ядро перекомпилировать, что-то такое. Вот выйдет новая версия рэкета, ты обновишься, все твои изменения в тичпаках перезапишутся - будешь заново все туда копипастить после каждого обновления? Нахуй, нормально делай - нормально будет.
К тому же тебе все равно в будующем надо будет с модулями разобраться - ты же не думаешь, что реальные программы пишут целиком в одном файлике, лол? Что тебе там непонятно, рассказывай давай
Да я вообще нихуя не понял, если честно, как оно делается. Ну скопировал я списком определения всех функций. По моей дебильной логике, мне бы всю эту простыню куда-нибудь закинуть, сдружить с прогой и все. А сейчас у меня только вордовский документ с простыней программ, и что с этим делать, хуй его знает. Пересмотрел раза 3 ту статью, блядь указаний к действиям там нет, но наверно я слишком тупой, чтобы скрытый смысл увидеть.
я знаю, что херовую процедуру задал, это просто для примера, такая же ошибка и в тех, что с учебника копировал
до let есть много заданий, которые не подразумевают его использования
а вообще мысль здравая, спасибо
и раз уж ты тут, ответь плес
вот пример из учебника с lambda
(define (integral f a b dx)
( (sum f
(+ a (/ dx 2.0))
(lambda (x) (+ x dx))
b)
dx))
но разве нельзя просто написать вместо лямбда тупо выражения для х? типа вот так
(define (integral f a b dx)
( (sum f
(+ a (/ dx 2.0))
(+ x dx)
b)
dx))
Скопируй в ideone, или хотя бы в пастбин, пожалуйста. Никто этот фарш с поехавшей разметкой читать не будет.
ладно забей, я вроде сам разобрался
Я не оп, а другой анон, але.
>>63312
>По моей дебильной логике, мне бы всю эту простыню куда-нибудь закинуть, сдружить с прогой и все.
Ну, там это и описывается. Ты создал папку для своего кода? Ты под виндой или под нормальной ОС? Создай там где-нибудь папку projects/racket/, в ней файл mylib.rkt - в него закинь все функции, которые хочешь использовать в будущем. Дальше открой ссылку, которую я тебе скинул, и прочитай, как подгружать этот файл в рэкете (provide + require).
>f(5)
Meh...
>меня drracket нах шлёт
Потому что у тебя язык ПРОДВИНУТЫЙ СТУДЕНТ для использования с хтдп, из которого выпилено все, что к этому моменту еще не было объяснено в хтдп (там еще не объясняли, что дефайн можно внутри дефайн делать, вот и говорит об этом, чтобы какой-нибудь студент не написал дефан внутри чего-то другого и думал потом почему извне этого не видно, ведь написал же). Сделай #lang racket и будет тебе счастье.
Ок, создам папку. А файл как создать? Просто вордовский документ переименовать в такую хуйню, а в него потом закинуть? Подключить-то хуй с ним, разберусь.
Какой вордовский документ, ты чего? Обычный текстовый документ, с расширением rkt. Ты где до этого-то писал все вообще? Каждый раз при запуске рэкета заново все печатал что ли? Прямо в нем напиши что тебе надо и нажми ctrl+s, введи имя-файла.rkt и сохрани куда надо. Блядь, тебе полюбас надо параллельно какой-то курс основ компьютерной грамотности проходить, типа информатики в школе, чтобы хотя бы понимать чем вордовский документ от текстового файла отличается.
>>63599
Сочувствую))00)
В учебнике идет разбор функций по одной, с нуля и писал. Но там только писать эту одну функцию и приходилось. Хорошо, вечером попробую это все сделать и отпишусь, сейчас убегаю. Да я просто не касаюсь всех этих расширений, вот и тупить начал. Короче у меня в настройках расширение не указывается, я это дело включу, создам файл нужного расширения, туда скопипастю, создам директорию и по той инструкции попробую сделать. Спасибо за помощь, отпишусь вечером.
Держи в курсе. Нет, правда, мы все тут твои друзья и радуемся твоим успехам, как своим собственным :з
>>63639
Создал файл в ракете с нужным расширением. Внутрянка с функциями, как мне и нужно. Создал папку /racket/моя библиотека/my function.rkt
А дальше залупу за воротник. Пытался подключить этот файл, как течпак, он мне выдал хуйню, мол незаконное вмешательство или какой-то подобный бред. Пытался как в инструкции через file/package manager - тоже нихуя дельного не вышло. Блядь, есть толковая инструкция? Берешь блядь файл, закидываешь в такую-то папку, заходишь в ракету, нажимаешь такую кнопку, в появившемся окне такую кнопку, потом еще одну, выбираешь этот файл, нажимаешь "ок" и живешь нормально? Какой-то пиздец неадекватный, честное слово.
>Какой-то пиздец неадекватный, честное слово.
Почему ты ожидаешь, что абсолютно для всего в мире должна быть инструкция, в которой всё подробно разжёвано как для дебилов? Тебе разве не открылось блаженство нахождения решения сложной задачи своими силами? Что тебе мешает для решения стоящих перед тобой проблем использовать старый, как западная цивилизация, метод trial and error? Что, в конце концов, мешает тебе скопировать текст возникающих ошибок в гугл, а затем перейти по первой ссылке и ненадолго включить мозг?
Как дитё малое, ей-богу. Ты ещё бы подробную инструкцию по ебле реквестировал. "Двощ, я не могу вагинальное отверстие у тни найти, что за пиздец неадекватный?!?"
Просто потратить пару-тройку часов ради того, чтобы научиться закидывать библиотеку, причем безуспешно, это не нормально. Я готов тратить время и нервы на изучение непосредственно программирования. Но блядь дрочиться с КОНКРЕТНО ВЗЯТОЙ ПРОГРАММОЙ в пустяковом моменте - хуевая затея, т.к. в другой программе будет по другому добавление этих библиотек, после обновления этой программы опять же не факт, что не станет по другому. Ладно, пока буду целиком простыню копировать в верхнее окно, хуле делать.
Да, ты спрашивал, с чего я взял, что подробная инструкция должна быть. Взял с того, что наверняка далеко не я первый пытался голову ломать с этой хуйней, а подробные инструкции есть даже по откручиванию колеса на машине.
Блять, да что же за хуйней ты маешься, скачай уже mit-scheme, создай файл с кодом, запускай
mit-scheme --load "sicp_2_40.scm"
и будет тебе счастье. Потом можешь rlwrap качнуть и стартовать mit-scheme через него - будет и история команд и прочие ништяки.
>Просто потратить пару-тройку часов ради того, чтобы научиться закидывать библиотеку, причем безуспешно, это не нормально.
Это нормально. Чем больше вещей ты знаешь, тем эффективнее работает твой мозг при генерации новых идей, и тем раньше у тебя начнётся старческая деменция.
Перечитай первый параграф, 6.1 Module Basics:
https://docs.racket-lang.org/guide/module-basics.html
>Блядь, есть толковая инструкция?
Да, вот: https://docs.racket-lang.org/guide/module-basics.html
>>63851
>Просто потратить пару-тройку часов ради того, чтобы научиться закидывать библиотеку, причем безуспешно, это не нормально.
Действительно.
>Но блядь дрочиться с КОНКРЕТНО ВЗЯТОЙ ПРОГРАММОЙ в пустяковом моменте
Модули - это часть языка. В рэкете они работают примерно так же, как в других скриптовых языках типа питона.
>>64153
Сделай пошагово один в один как тут написано: https://docs.racket-lang.org/guide/module-basics.html
Потом попробуй добавить в cake.rkt еще одну функцию и использовать ее из random-cake.rkt.
Каждый модуль ракетки обычно находится в своем собственном файле. Например, предположим файл " торт.РКТ" содержит следующие модули:
бла-бла-бла, пример модулей
Затем, другие модули могут импортировать "торт.rkt "использовать функцию печати торт, так как обеспечивают линии в" торт.rkt " явно экспортирует определение print-cake. Функция шоу является частной для " торт.rkt "(т. е. его нельзя использовать из других модулей), так как show не экспортируется.
Следующий " random-торт.РКТ "модуль импорта" торт.rkt":
бла-бла-бла, опять пример модулей
Относительная ссылка "торт.РКТ "в импорте (требуется" торт.РКТ") работает, если "торт.rkt " и " random-торт.модули РКТ" в тот же каталог. Относительные пути в стиле Unix используются для относительных ссылок на модули на всех платформах, подобно относительным URL-адресам на HTML-страницах.
И че блядь мне с этим бредом делать?
Идем далее, пикрилейтед.
Файла sort.rkt нету блядь. Папки machine тоже блядь нету. Папок db несколько, но хуле толку, если ни машины ни того файла нет, хуй знает, че даст эта одна папка, причем хуй знает какая именно нам нужна.
Опять я тролль, да?
> Опять я тролль, да?
Конечно, не бывает на свете таких тупых людей.
> И че блядь мне с этим бредом делать?
Английский учить, долбоёб блядь.
Тебе уже всё разжевали, как для маленького, а ты, блядь, всё равно стоишь посреди треда, плачешь и зовёшь маму. У, сука, встреть я тебя на улице, отпиздил бы, честно.
КАКОЙ ЖЕ ТЫ СУКА ТУПОЙ
СОЗДАЁШЬ c.rkt:
#lang racket
(provide add2)
(define (add2 x)
(+ x 2))
СОЗДАЁШЬ b.rkt:
#lang racket
(require "c.rkt")
(add2 5)
Еще раз, прочитай параграф 6.1, от слов
>Each Racket module typically resides in its own file. For example, suppose the file "cake.rkt" contains the following module:
до слов
>Unix-style relative paths are used for relative module references on all platforms, much like relative URLs in HTML pages.
и просто сделай все так, как там написано: создай два файла, скопируй их содержимое со страницы в файлы, открой их в рэкете, запусти и проверь, что все работает. Опять же, если ты не понимаешь, как создавать файлы или что такое относительные пути, то тебе надо просто какой-нибудь школьный учебник по информатике прочитать, или книжку по типу "основы компьютерной грамотности", без шуток. Тебе просто надо создать два текстовых файла, скопировать в них текст, открыть их в редакторе и запустить, тут программирования-то особо нет как бы.
@
зашел на двач
@
сказали читать SICP
@
прочитал первые пару глав
@
не понял
@
>КАКОЙ ЖЕ ТЫ СУКА ТУПОЙ
@
>встреть я тебя на улице, отпиздил бы, честно.
@
Ну в пизду пргрмирование.
вопросы объективно очень тупые, там даже ангельский знать не нужно, чтобы понять чё по чём (я про модули)
Да тут просто оп уже четвёртый тред подряд небезуспешно троллит тупостью
Понимание рекурсии и навык написания алгоритмов. В слонике тащем-то плюс-минус типичные вопросы из интервью на жс-джуна какого-нибудь.
Да.
Мимопролетал, слоник это вот этот? Тогда нирикамендую его вообще трогать.
Ууу, блядь, это позерский слоник-хипстер, так и хочется ему морду набить!
Нет, вот этот
>В слонике тащем-то плюс-минус типичные вопросы из интервью на жс-джуна какого-нибудь.
http://www.crockford.com/javascript/little.html
ПАЦАНЫ, Я СЕГОДНЯ ШЁЛ КОРОЧЕ ПО ГОРОДУ И УВИДЕЛ ЧЕЛА В МАЙКЕ ">>=", НУ Я ПОДСКОЧИЛ И РЕЗКО ПЕРЕЕБАЛ ЕМУ В ЩЩИ С ВЕРТУШКИ И ПОЯСНИЛ ЕГО КРИКОМ "НЕ ЛЮБЛЮ МОНАДЫ", ПОТОМУ ЧТО Я УГОРЕЛ ПО ЛИСПУ, ПАЦАНЫ ДУХ СТАРОЙ ШКОЛЫ ЖИВЁТ ТОЛЬКО В НАСТОЯЩЕМ ФУНКЦИОНАЛЬНОМ ПРОГРАММИРОВАНИИ, ГДЕ ЕБАШАТСЯ ПО ХАРДКОРУ, ГДЕ ПАЦАНЫ ЖИВУТ МЕТАПРОГРАММИРОВАНИЕМ, ИНТЕРАКТИВНОЙ РАЗРАБОТКОЙ И ЕБУТ СИСТЕМУ В РОТ! ТОЛЬКО ЛИСП ТОЛЬКО ГОМОИКОННОСТЬ, ТОЛЬКО СКОБКИ!!! ЮНИТИ УЛЬТРАХАРДКОР ЛИСП!!! пацаны ебашьте скалоблядей, эфшарперов, крестовиков, формошлепов, академиков, угарайте по метарекурсии любите Лисп, репл и Скобки! ГОВОРИТЕ ОТКРЫТО И СМЕЛО ПРЯМО В ЛИЦО! ЛИСП!
М?
Кажется да, спасибо
работаю принеси-подай говном на морозе за 17к, жизнь ад, но есть много времени потому, что работаю на родню от которой лет 5 еще не сбежать. 22лвл
https://mitpress.mit.edu/books/little-typer
18 сентября, 2018. Всем слоникоебам посвящается, опу в том числе.
хтдп - htdp.org
слоник - a little schemer
Это вроде в первых постах треда есть все со ссылками.
Неточности в заданиях (!), так что лучше сверяй с оригиналом, когда будешь гуглить решения. Ну и формулировки на русском сложнее воспринимаются. Читай как параллельный текст обе версии для максимального профита.
Перевод сам по себе неплохой, но опечаток дохуя куда редакторы и корректоры смотрели при издании - неясно
Вы видите копию треда, сохраненную 8 ноября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.