Продолжаем обсуждение лучшей книги всех времен и народов, а так же одноименных лекций. Приглашаются сюда как новички, ломающие над ней голову, так и опытные ребята, прошедшие ее всю (или большую ее часть).
Где я могу писать свой код, для выполнения заданий? Онлайн редактор, с поддержкой Scheme: https://repl.it/languages/scheme IDE для racket подобных языков(но есть и поддержка Scheme, но её нужно включить) - https://racket-lang.org/
Если я хочу выучить питон и делать на питоне бота для стракрафта на нейронке(и вообще много чего на нейронке, круто же блядь) но ничего не знаю и вообще быдло.
Попытаться выучить это книгу или дроччить сразу синтакс и смотреть гайды про нейронки без вникание в эти подводные?
Не хочу убить полгода - года а окажется, что книга нужна только тем кто хуярит фотошопы на крестах или драйвера.
>>1247981 да не особо хорошо ее надо знать, но ориентироваться в ней чтобы быстро если что что-то загуглить это вот не помешает. Однако это несложная задача в любом возрасте.
>учить инженерии когда сотни тыщ библиотек написаны и еще сотни тыщ будут написаны, и все будут лучше чем анон сможет высрать после этой книжки даже после 5 лет практики, потому, что библиотеки высираются ежедневно людьми с 40 годами практики и и 99% все, что придет ему в голову будет уже написано
Не засирайте людям голову, это писали в 80-ые, 10/10 анонов которые хотят вкотиться в айти должны учиться быть прикладными погромистами и уметь работать с библиотеками(даже книги есть на эту тему) а не пердолить велосипеды. Тысячи людей проебали годы а потом пошли хуярить и поняли, что им нинужно.
Если человек просто сможет в библиотеки и азы и уже начнет хуярить в реальном секторе как можно раньше - он за 3 месяца практики будет будет лучшим специалистом в индустрии, чем тот кто пердолил теорию 2 года.
От себя могу порекомендовать пикрилейтед по изучению scheme. Я уже бросил 3 учебника - сикп, слоник и хтдп, а тут реально подробно и хорошо все расписано, по порядку, с примерами, разжевываниями и пр. Те учебники все равно не для полных нулей, хоть убейся. А вот эту книженцию скачал и заебись все идет, сейчас уже вторую главу наполовину прошел и вопросов и тупизны нет, все охуенно. А выучу синтаксис, уже смогу тот же хтдп разбирать, где о более высоких материях вещают и не будет такого, что пишут про какие-то функции, а ты их значения не знаешь и не понимаешь, что откуда.
>>1248040 >Слоноёб, ты уже и HTDP дропнул? Конечно и хтдп дропнул. Потому что мне нужен учебник для нуля, а не для прокачивания имеющихся скиллов. Смотри пикрилейтед - вырезка из хтдп. Максимум, что я смог для себя выжать из этого, тупо умозаключениями, что эта команда преобразовывает количество символов во фразе в число. И то блядь сам сидел и доходил. А блядь в нынешнем учебнике именно объясняют. Что одна команда, это чисто строковая, Другая команда это числовая. СТРЕЛОЧКА БЛЯДЬ -> это блядь преобразование и ей пользуются, когда переводят из одного формата в другой. >Быстро ты. Раньше это занимало у тебя больше времени. Я понял, что мне нужен учебник по синтаксису схемы и азам программирования. Если блядь в том же пикрилейтед нет разжевывания, как это работает, а сразу ставят перед фактом, то ну его нахуй. Нужно учиться, впитывать информацию, записывать конспект с расшифровкой функций. А не блядь строить догадки, как это было в слонике с ебаными вопросами. маму того гандона ебал, который мне слоника советовал Короче нашел я ключ ко своему успеху. >Скажи, а почему именно лисп, а не питон, например? В чём причина? Причина в том, что сикп и хтдп, признанные мировым сообществом, сделаны под схему. Схема, по отзывам интернета, простой язык для обучения, для прокачивания именно навыка программирования. Плюс это вроде как низкоуровневый язык, который поможет в дальнейшем не стать мудаком, который компонует между собой блоки, а реально понимает, что к чему. Я осилю схему, а синтаксис другого языка потом переучу, говорят дело 3х месяцев, причем не сильно напряжных. >Лисп - довольно специфическая вещь. Он вообще далеко не всем заходит. Вот я сейчас нормальный учебник скачал и вполне себе заходит. >Может быть, не стоит ебать себе мозг? А я разве когда-то сильно жаловался? Меня мозгоебля не напрягает. Мне интересно разбираться с тем, что я не умею. Сейчас все пошло охуительно, радуюсь жизни и решаю простенькие задачки по функциям, которые мне объясняют.
>>1248045 >не стать мудаком, который компонует между собой блоки Именно этим ты сейчас и занимаешься.
Понимаешь, стрелочка - это просто стрелочка. Она вообще ничего не значит. Это для тебя, а не для компьютера. Просто говорящее название функции - "число-в-строку".
Мне кажется, ты не понимаешь каких-то основополагающих вещей о компьютерных технологиях. Это не языки, не функции, не числа, это некая общая идея, которая за всем этим стоит. И ты её не схватываешь, пока. И поэтому, всё остальное у тебя не идёт или идёт туго.
Я ведь не просто так тебе LOGO советовал. И не просто так написал несколько длинных комментов вчера.
И да, питон тоже неплохо пошёл бы. Толку было бы гораздо больше.
>>1248047 >Мне кажется, ты не понимаешь каких-то основополагающих вещей о компьютерных технологиях. Ну я читаю только вторую главу, а их там 12. К концу учебника должно же что-то измениться. >Это не языки, не функции, не числа, это некая общая идея, которая за всем этим стоит. И ты её не схватываешь, пока. Ну так я и говорю, что нужно именно навык программирования прокачать. Вот пытаюсь это сделать. >поэтому, всё остальное у тебя не идёт или идёт туго Сейчас все идет, и идет не туго. Ну вот смотри пикрилейтед. У меня была глава, где объясняли функцию let. Потом упражнение, когда функция записана только с переменной Х, а нужно переименовать функции так, чтобы все переменные были разные и не были затенены (не пересекались). И че блядь? И ведь решил нахуй. Короче идет у меня дело. может не так, может не туда, но по учебнику двигаюсь вполне неплохо. Да, меня частенько в троллинге упрекают, но хуле делать, не всегда все понимаю.
>>1248053 Да я че-то забыл, что обещал без аниме. Но четко помню, что обещал без пони. Ну извините. А вообще, не нравится - сам перекатывай ПОНИДРОЧЕР КАВАЙНЫЙ
>>1248056 Ну я и говорю, что забыл, что обещал без аниме, а только помнил, чтобы поней не было. И извинился. Извиняюсь еще раз. Кстати че тебе так бомбит от аниме? Просто блядь запостить пик книжки как-то слишком уныло.
>>1248028 >Не засирайте людям голову, это писали в 80-ые, 10/10 анонов которые хотят вкотиться в айти должны учиться быть прикладными погромистами и уметь работать с библиотеками >уметь работать с библиотеками А что нужно, чтобы уметь с ними работать? Знать английский, чтобы уметь прочесть документацию?
>>1248045 >Максимум, что я смог для себя выжать из этого, тупо умозаключениями, что эта команда преобразовывает количество символов во фразе в число
Так string-length переведи с английского. Что получим? "длина строки". Что ж она может-то еще выдавать кроме количества символов?
number->string (число переходит в строку) string->number (строка переходит в число)
Правильно выше написали, что тут не с программированием проблемы и не с синтаксисом. Инглиш + мышление.
На самом деле тяжко тебе будет, ой тяжко. Но крепись. Задачки чтоль логические порешай в параллельно с книгой своей, возможно поможет. Например "Тигриная алгебра". Или вот сайт есть http://www.braingames.ru/
>>1247967 >Позвольте разъяснить несколько моментов: а) Большинство людей, которые делают сайты – не программисты. Если вы хотите делать сайты, но не хотите быть программистом – берите в зубы учебник «PHP5 в подлиннике» и начинайте делать свою первую гостевуху. Вопросы решайте в гугле и на форумах. Здесь другая тематика. Эту пасту дальше читать не надо, мы будем долго разговаривать, а вам нельзя терять время. >берите в зубы учебник «PHP5 в подлиннике» и начинайте делать свою первую гостевуху Ты понял, что делать.
>>1247982 Двачую. Надо знать математику на уровне "смогу загуглить что такое числа фибоначчи и понять по статье в википедии, что это собственно такое"
>>1248103 Инглиша у меня нет от слова "вообще". Так что пока так. Вроде на первое время, чтобы джуном устроиться, он и не нужен. А там уж залезу если, буду и его учить. Мышление тоже пока не подключается, наверно потому, что не сильно понимаю суть вопроса и что от меня нужно. Ссылку твою сохранил, но пока свой учебник порешаю, может посредством его удастся понять, что в принципе от меня нужно. >>1248110 Вот я открыл пока что для себя нормальный учебник с простенькими задачками к каждой функции, пока его решаю и вполне успешно. Ссылку твою сохранил на всякий. >>1248137 Видеорилейтед.
>>1248225 Просто этот дурачок синтаксисом называет стандартные функции и формы, типа car там, cdr, string->number и прочее. Не обращай внимания, он уже на моей памяти третий тред подряд троллит тупостью.
>>1248225 Ну может я и правда неправильно выразился. Имел в виду все эти команды. Но ведь и тот сосатель хуев не сильно прав, т.к. он явно понял о чем речь, т.к. в том посте описано, что разбираюсь именно с командами. Но нет, решил потешить свое чсв и доебаться до слов. Так что тот видеорилейтед вполне актуален. >>1248246 Ты, конечно умнее того, кто доебался до слов, но по большому счету тоже недалекий, ибо пытаешься высмеять ньюфага, который прикладывает немалые усилия, чтобы перестать быть таковым.
>>1248034 Хтдп начинается буквально с целой главы про то, как нам сложить два числа. Он изначально писался с расчетом на то, что по нему можно преподавать старшеклассникам основы программирования.
>>1248045 > что я смог для себя выжать из этого, тупо умозаключениями, что эта команда преобразовывает количество символов во фразе в число >string-length >строки-длина
>СТРЕЛОЧКА БЛЯДЬ -> это блядь преобразование и ей пользуются, когда переводят из одного формата в другой. >operation that converts strings into numbers
>>1248045 > Сейчас все пошло охуительно, радуюсь жизни и решаю простенькие задачки по функциям, которые мне объясняют. Впрочем, whatever works for you, нравится - вот и хорошо. Забавно кстати, что этот учебник ты себе сам нашел, лол, а не местные советчики тебе его посоветовали.
>>1248047 >И да, питон тоже неплохо пошёл бы. Ты блядь понимаешь, что с питоном ему бы в самой первой главе пришлось осознавать, чем отличается передача по ссылке от передачи по значению, например? А также что такое классы, чем __init__ отличается от конструктора, чем генератор отличается от итератора, почему некоторые функции мы вызываем как foo(x), а некоторые как x.foo(), что такое модули и области видимости, итп итд А слоника ему ведь тоже ты советовал?
>>1248292 Не, слоник так-то охуенный, просто как бы не всем подходит. Ты ж вообще говорил, что у тебя там вышка по информатике или что-то такое, лол. Короче, надо подбирать индивидуально, а тут как бы анонов с опытом преподавания нет (да и тебя лично никто не знает), так что советуют исходя из своих представлений о том, что бы им подошло, а не тебе.
>>1248295 Да у меня корки только. Ладно, сойдемся на том, что слоник не подошел лично мне, а тот, кто советовал, ему хорошо подошла. Просто мне проще прочитать текст с объяснением, законспектировать своими словами, решить пару примеров по этой функции и все для себя понять. А не стоить догадки, прибегать на двач с порванной жопой и вопросом "хуле этот слоняра доебался, че ему надо?". Но сейчас вроде как встал на путь истинный, поглядим, что будет дальше.
>>1248308 >Нет, слоника советовал не я. proofs or gtfo
>И ты написал явную и очевидную хуйню. Универсальный ответ на любой пост, лол. Я изложил факты, а тебе по делу ответить нечего.
>Питон - язык, идеально подходящий для обучения. Ну да, правда создавался он для другого и в обучении используется не чаще других языков, но раз ты так сказал, то так оно и есть, да.
>А советовать SICP (и вообще лисп) полным ньюфагам в 2018-м - это очевидный троллинг. Ну напиши письмо президенту Калифорнии, что какие-то ушлые евреи свою school of computer science запилили, чтобы анончика с зекача потроллить: https://teachyourselfcs.com - пусть разберется!
Алсо, дальнейшие вариации на ту же тему: >советовать кернигана-ричи вкатывальщикам в си - это очевидный троллинг >советовать фихтенгольца (зорича) вкатывальщикам в матан - это очевидный троллинг >советовать "изучай х-ль во имя добра" вкатывальщикам в фп - это очевидный троллинг
>>1248313 >питон >в обучении используется не чаще других языков Гораздо чаще. И это легко гуглится. Например, много ли есть книг типа "хаскель для детей", "лисп для детей", "кресты для детей"? А про питон - хуева туча.
По остальным пунктам - то же самое, примерно.
Я думаю, тебе, всё же, стоит пойти на хуй быть толстым где-то в другом месте.
>>1248313 Про хаскель есть поинтересней книженция, хоть и платная (но кто ищет всегда найдет)
А про матан ничего сказать не могу - у меня по нему тройка была, перекрывал "отлично" по программированию, чтобы степуха была. Но всегда пекло от того, что у нас предмет типа имеет отношение к АНАЛИЗУ и считается неебически важным всем иначе не научишься мыслить и анализировать. Тогда как на "загнивающем" это просто "исчисление" и никаким анализом в нем и не пахнет - тупо задрачивание кучи шаблонов по вычислению той или иной херни.
У нас преподша с принебрижением вообще относилась к остальным предметам, мол только ее самый главный. Вот типа у меня получаете тройбаны, а мой предмет пройдет будет больше программирования, сразу все отличники становитесь, мол и тупая макака будет программистом, а только светлые головы смогут познать сей дивный предмет матанализа.
>>1248317 > хаскель есть поинтересней книженция Ты имеешь в виду ту, которая издательства Manning? Или ещё какую-то?
> матан Матан (континуальная математика) нахуй не нужен в программировании. Термин "анализ" в названии имеет вторичный, технический смысл, и может смело быть опущен. Никакого отношения к умению анализировать что-либо это не имеет.
>>1248312 Погугли, что такое "число с плавающей точкой". И что такое "символ" заодно тоже погугли. (Ну и что такое pi заодно, лол.) И что такое pretty printing. Можешь даже сам открыть рекет, поменять в настройках отображение ratios и посмотреть, как оно все работает. Потом перечитай мой пост.
Алсо, можешь уже прекратить так рваться, тебе не 15 лет надеюсь, лол.
>>1248316 >Гораздо чаще. И это легко гуглится. В большинстве вузиков первакам дают сишку и\или джаву. Питон тоже дают, но не чаще других языков.
>Например, много ли есть книг типа "хаскель для детей", "лисп для детей" Только что ведь вкидывали, лол, проскролль вверх. Алсо, при чем тут лисп и дети, если речь про питон и обучение.
>По остальным пунктам - то же самое, примерно. Ну да, я же написал уже: тебе нечего сказать по делу, поэтому ты рвешься.
>>1248317 >Про хаскель есть поинтересней книженция Согласен, но традиционно ньюфагам советуют именно фор ве грейтер гуд, так что с ней аналогия получается лучше.
>имеет отношение к АНАЛИЗУ и считается неебически важным всем иначе не научишься мыслить и анализировать. А когда по алгебре "поля" проходите, вас типа на картошку должны вывозить, лол? Это просто название, к слову "анализ" в общем смысле отношения не имеет происходит типа от "анализ поведения функции".
> Тогда как на "загнивающем" это просто "исчисление" и никаким анализом в нем и не пахнет Не, ты путаешь. Калькулюс - это "основы анализа" по-нашему, в 10-11 классе обычно проходят. https://en.wikipedia.org/wiki/Mathematical_analysis
>У нас преподша с принебрижением вообще относилась к остальным предметам Ну это у них часто встречается, да. Первым делом первым делом матанализ...
>>1248322 >Да, ты вполне можешь прекратить, лол. Мне кажется стоит иногда указывать место тем, чье чсв не соответствует их реальным знаниям\навыкам. Это лучше для них же в первую очередь.
>пост был написан конкретному человеку, по конкретному поводу. Именно. Тот человек все понял правильно (в контексте того обсуждения), а ты начал называть его тупым и путать его некорректными утверждениями. Вот я и поправляю твои ошибки, но ты зачем-то вместо того, чтобы просто сказать "ок", начал рваться и посылать всех нахуй. Глупо.
>тут появился ты и Указал тебе на твои ошибки. Прочитал, что такое "символ"? Как работают ридер и принтер? Чем флонумы отличаются от ratios?
>>1248325 >JavaScript Allonge Еще не обновленную версию. Сейчас она на es6 переписана. Вторую не глядел.
>>1248326 Не, ну у нас на инглише называлось все равно calculus. И чет я не припомню, чтобы в школе преподавали polar и multivariable Но, может где-то и было, хз.
>>1248335 У вас наверное были базовые курсы (калькулюс), а для Ъ-маняматиков уже отдельные курсы для того, что составляет типа analysis. Ну то есть если с нашими вузами сравнивать, то у нас бы ваш калькулюс назывался бы матаном, да. Короче, mismatch переводов, это все хуйня, смысл в том, что analysis у них тоже есть, calculus - часть (база) analysis.
А где тот терпила, который залупы со страниц стирал и дратые учебники подклеивал? Мне бы сюда того очкозавра, ща бы на бабосики опустил его ниже плинтуса, лал.
Не долго музыка играла, не долго фраер танцевал. Как бабки есть - уфа, гуляем... (далее по тексту) Тупой оп опять с тупизной приперся. Не могу разобраться с ебаной лямбдой. Пикрилейтед 4 упражнения из того учебника, логику поймать не могу. 1. Это упражнение решил сам правильно. Иксы блядь друг друга поубивали, Тем самым никаких изменений не вносят. 'а возвращает просто а, т.к. ' - сокращение от quote, а эта функция возвращает выражение, не выполняя его. Может логика моя не правильная, но ответ совпал. 2. Лучшее, что смогло прийти в голову, то 'а вернулось в скобках, т.к. лямбда пытается вернуть список в скобках, вот оно эту а в скобки и захуячило. В первой задаче второй икс за скобкой, а 'а уже аргумент, который вернулся без изменений, в этом же примере второго икса, который за скобкой, нет, поэтому нашу 'а он в скобки и захуячил. 3. С ебаной точкой я вообще не сильно понял, как воевать. Были функции лямбды, где допустим два аргумента, дальше точка, потом еще что-то. А на выводе он отделяет эти два аргумента скобкой, точнее все, что дальше, в скобки захуячивает. ТУт явно не тот случай. В книге раньше по тексту пиздели что-то про пары, когда там пары неправильные или списки неправильные, точка ставится, тоже как-то мутно представляю. И это упражнение не понял, схуяле. 4. Тут даже комментировать нечего, просто не понял. Уж начал задумываться, может правда все это не мое...
>>1248443 Если говорить про лямбду, осознаю как-то так. 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)) Это копипаст с вордовского документа, в котором записываю работу функций. И происходящее, по крайней мере с лямбдой, по ходу не осознаю.
>>1248446 Ну я не то, чтобы их копировал, я мозгами их решал, потом вводил в ракету и что-то не совпадало, вот и начинал думать, что и почему. ХОрошо, спасибо за развернутый ответ. Не думал, что сразу ответят; сейчас я спать, т.к. полчетвертого утра, А высплюсь, вернусь к этому вопросу и сделаю все, что ты написал и посоветовал. Еще раз спасибо и добра, няша :З
>>1248446 Да, кстати с летами я вроде-как вполне разобрался -> >>1248049 Там просто по тексту сначала лет объясняли, а теперь лямбда идет. Ладно, ушел.
>>1248292 > слоника с его дебильной подачей Сам ты дебильный. >>1248316 Не знаю как у вас, но в моём гарварде для вкатывальщиков сишечка используется. >>1248321 > В большинстве вузиков первакам дают сишку и\или джаву. Ну вот, собсна. Только тогда уж не джаву, а жс. На джаве чтобы хеллоуворлд написать надо попутно кучу хуйни объяснить
>>1248344 А где тот чухомор, который срал под себя и позволял одноклассникам рвать его учебники на переменах? Ах, вот же он, лал. Ты небось и на толчке жрёшь, уёбище.
>>1248434 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) {} Только тут вместо одной точки три.
public static void main(String[] args) { System.out.println("Hello, World"); }
}
И на жс:
<script> alert( 'Hello, world!' ); </script>
Это без учёта того, что <script> вообще html тег, просто чтобы хеллоуворлд работал нужен по крайней мере этот тег
Разница есть?
Объяснить два слова алерт и скрипт (и то с оговорочкой), или объяснить паблик класс статик войд стринг аргс систем-аут, попутно полностью пояснив охуевающему студенту за ООП?
Пока писал этот пост, подумалось вот о чём. Сюда ведь часто заскакивают трали с возгласами "велосипеды нинужны", так?
Но почему-то всё образование исконно состоит из велосипедов. И состоит из них ВЕКАМИ. Любой предмет совершенно. Самый яркий пример - математика. Сначала простейший устный счёт, потом новые цифры, новые операции, и всё больше и больше контента, но всё строится ПОСЛЕДОВАТЕЛЬНО, взятие интеграла можно последовательно разобрать вплоть до уровня ясельной группы, потому что оно строится на предыдущих понятиях из курса математики конечно не всякий студент сможет это сделать, потому что программа плотная, любой малейший проёб по ходу и вот ты уже играешься с чёрными ящиками и зубришь наизусть изолированные понятия, не понимая что это вообще. То же самое русский язык, химия, физика, исключение разве что история. Все учились путём наслаивания сложного на простое, т.е. на велосипедах
Но когда дело касается информатики, то внезапно велосипеды стали не нужны. Нахуй что-то понимать, даёшь работу пляски с бубном вокруг чёрных ящиков! Хотя по факту все грамотные cs программы, в т.ч. и курс сикп, подразумевают ДОЗИРОВАННУЮ работу с чёрными ящиками уже в период обучения. Тот же курс гарварда и мит, где студента сразу готовят к этому, говоря "вот это printf, это функция из какой-то библиотеки, хуй знает как она работает но нам похуй", тот же сикп, но почему-то на сикпе свет клином сошёлся а на том же митовском курсе питона нет. Почему? Да хуй знает. Вангую что из-за сложной подачи, отсутствия современных лекций и вытекающего из этих фактов неосиляторства. Лично я сам неосилятор (но осилил до тех пор, чтобы иметь возможность понять то, о чём писал выше), но отношусь ровно к этому, если кто-то осиляет то почему бы блядь нет? Всяко лучше чем по углам курить-шабить-дрочить-мастурбировать А что думаете вы?
>>1248603 Ах да, ещё из-за "кокок схема нинужна на ней ничиво ни напесать зачем учить тада", хотя в гарварде введение в информатику на 99% состоит из сишечки, на которой тоже ничиво ни напесать, но как я понял дрочат в основном не на гарвард (просто отметая его, будто его не существует / это не топовый вуз / причина_нейм, хотя раз там в 2018 начинают курс с си, это наверняка неспроста), а на мит с его питоновским курсом, опять же забывая что тот же сикп из мита никуда не делся (вроде).
>>1248603 Сказать-то что хотел, лол? В этом мире все идет от меньшего к большему. Сначала придумали колесо, потом тачку, потом телегу, потом привязать к телеге лошадь... сейчас электромобиль тесла, который ездит сам, без водителя. Можно быть просто пользователем, а можно вникать глубже. Я богатый программист, изучил все эти сикпы и пр. Купил новый лексус и мне нахуй не нужно знать, как там коробка и движок работают. В программировании я царь и бог, в ремонте и обслуживании машины я полный ноль, да и не нужно мне это. Поэтому кому что. Кто-то скажет, мол нахуй новый лексус, он дешевеет пиздец как, а вот я купил логана бэушного, сам обслуживаю и стоимость владения в 5 раз дешевле, плюс изначально покупка в 20 раз дешевле. А мне похуй, у меня есть бабки, могу себе позволить, плюс у меня нет времени, чтобы гайки крутить. но это все мечты о светлом будущем, а пока я дебильный оп, разбирающийся с лямбдой, лол
>>1248611 >В программировании я царь и бог, в ремонте и обслуживании машины я полный ноль, да и не нужно мне это. Тогда моя очередь спрашивать "сказать-то что хотел?"
>>1248616 Значит ты вообще ничего не понял из моего поста, что собственно по твоему первоначальному вопросу видно. Задавай конкретнее, что именно тебе неясно.
Он вообще эффективна с точки зрения тайм менеджмента, то есть потратить на нее год, изучить через нее на липсе все подводные и потом за несколько месяцев выучить синтаксис каких нибудь крестов и успешно вкотиться?
>>1248622 > Если её всю осилить то дзен откроется? Да. Он откроется ещё тогда, когда в третьей главе тебе дадут оператор присваивания, и ты охуеешь, сколько сложного рабочего кода ты уже написал например ебучая задача восьми ферзей без единой операции присваивания.
>>1248632 Блядь, ну вот же HtDP-шный диалект в ракете прямо в стандартной поставке, даже не нужно включать мозг и искать ничего в интернете, нет блядь, не хочу по нормальному, хочу говно жрать swindle какой-то из жопы высрать и им обмазываться. Бро, ты и правда не очень умный. Выше по треду были какие-то задачки на сообразительность, может всё-таки с них начнёшь?
>>1248634 Няш, не ругайся. Учебник приводит примеры и ответы на них, потом дает задачи решать самому. Примеры этого учебника и ответы у меня не совпадали, когда язык был такой, как у тебя на скрине. Методом тыка я подобрал язык, чтобы ввод и вывод в учебнике и у меня в программе были одинаковыми.
>>1248639 >Методом тыка я подобрал язык, чтобы ввод и вывод в учебнике и у меня в программе были одинаковыми. Не хочу тебя огорчать, но ты хуйню сделал.
> Примеры этого учебника и ответы у меня не совпадали, когда язык был такой, как у тебя на скрине. Неси сюда, будем всем зекачом разбираться, что у тебя там не совпадает.
>>1248648 Ясн. Кароч, понять, что (list 'a 'b 'c 'd) и '(a b c d) - это разные представления одного и того же объекта, а именно списка с элементами a, b, c и d, это и есть конкретный пример абстрактного мышления. Это очень важная вещь для программиста, но у тебя с этим, как показывает практика, туговато. Вообще, как я люблю говорить своим студентам, программирование - это профессия, в которой тебе каждый день нужно балансировать в опасной близости от банальной шизы.
>>1248652 Мне уже разъяснили в прошлом итт, что суть выводов одна, просто по разному пишут. Но я в самом начале пути и пускай все будет, как в учебнике, мне так удобнее.
>>1248434 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 засовывает все оставшиеся элементы.
На самом деле тебе это не особо надо, можешь пропустить.
>>1248603 Велосипеды не нужны в тот момент когда ты при желании можешь его разобрать и собрать. Это нужно редко, но те моменты когда это может быть полезно и показывает хуй с горы ты или программист.
>>1248607 Особенно доставляет "зочем тратить время учить СИНТАКСИС схемы за это время можно уже освоить вуе.жс джанго и спринг с хиюернейтом и стричь 300килобаксов лопатами))0)"
>>1248871 >>1248883 Вы оба нихуя не поняли. Одному я уже предлагал пояснить, но он в залупу залез. Теперь предлагаю второму - какая часть поста тебе была непонятна?
>>1248871 Короче суть моего поста: бессмысленно считать систему "от простого к сложному" чем-то плохим применительно к программированию, постольку поскольку эта система применяется везде и везде работает.
>>1248894 Там одно очевидное говно и понимать там нехуй. Если тебя устраивает тупое пользование велосипедом - твое дело. Только очко потом будешь разрывать, когда колесо проколешь или цепь с него слетит.
>>1248905 Извини, многабукав, неосилил. Вместо того, чтобы читать твою простыню, я уже запилил свой генератор оперденей на вуе.жс, гребу 300кб\сек лопатой веслом.
Алсо, еще можно вот такой тлдр представить: для чайников: (f x y z ...) для знакомых с си-подобными яп: f(x) -> (f x)
>>1248934 Эм, ну тебя виднее, в чем там у тебя дело, чувак. Я просто проходил мимо и указал тебе на то, что тот анон писал ровно о том, о чем ты написал в своем посте: >Если тебя устраивает тупое пользование велосипедом - твое дело. Только очко потом будешь разрывать, когда колесо проколешь или цепь с него слетит. - а ты его просто видимо неправильно понял.
>>1248942 Я автор той простыни, привет антош, ты на аиб, и тут можно говорить с разными людьми и думать что это один человек. >>1248948 Сейчас зацитирую, если ты такой слепой - >>1248028 Вот например, этому неочевидно. Продолжать?
>>1248948 Ну это отписавшимся, а так-то у ПРОГРАММИСТОВ уровня laba2.cpp часто встречается мысль, мол ВСЕ БИБЛИОТЕКИ УЖЕ НАПИСАЛИ, НАХУЯ ЧОТА УЧИТЬ, ПРОСТО ПОДКЛЮЧИЛ БИБЛИОТЕКУ И ВСЕ)))0) - правда потом на первой же работке у них случается небольшой надрыв манямирка, ага-ага
>>1248955 >>1248960 Ну так пускай живут в своем манямирке и хуячат джунами всю жизнь. Вы-то что жопу рвете? Я вот никогда не ставил перед собой задачу из баранов сделать что-то лучше, когда меня об этом сам баран не просит, а то и вообще не платят.
Не могу разобраться в проверке на "нетривиальный корень". Вот пример: n = 7 a = 2 Начинаем возводить a в 6-ую степень. a2=4 В задании написано, что на этом этапе нужно проверять число на то, является ли оно каким-то, помимо 1 и n-1. Очевидно, в моем случае проверка завалаена и n будто бы составное. В чем ошибка?
>>1247878 (OP) >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 лет назад? А ведь некоторые нынешние программисты до сих пор про них ничего и не слышали...
>>1249884 >неинтересную Поддержу оратора выше. Полегче, формошлёп. Какую такую "неинтересную"? Туда ли ты зашёл, щегол ёбаный?
Хватит лирики. Теперь смотрите чё я надыбал, синхронизировав 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)))))))
Сразу говорю, что вывод у них один и тот же, надо сказать какой из вариантов менее говнокодист, и самое главное - ПОЧЕМУ? Я-то знаю, интересно что вы скажете
>>1249799 Бля, хотел спросить, какой читалкой пользуешься, заметил, что формат названия файла гномовский, посмотрел название файла - там есть название читалки. Бля, ну вот, никакой интеракции, пришлось стирать вопрос.
>>1249884 >>1249866 Съеби уже с треда, дебил. Насколько ущербной омежкой надо быть, чтобы в треде про Х на вопрос как сделать X' начинать ныть про то, что "мам ну ни нада делать Х и X', мам ну скажи им, мам я не тупой прост ни нада это делать, запрети им". Быдло обоссанное, блядь.
>>1249799 Хм, почему? Наоборот же, если число НЕ является нетривиальной квадратной хуевиной, то число (может быть) простое. Они же пишут: если нетривиальная хуевина существует - то n не простое. А существует она тогда, когда a^2 mod n = 1. Так ведь?
>>1249886 >которые уже были придуманы 30 лет назад? Тащем-то так и есть всегда говорил, что клин код - унылая тягомотина кстати, не представляю кто все это реально может читать с умным лицом и думать, что занимается чем-то полезным, в хтдп кстати все это есть (и при этом это вводный курс про то как программировать вообще, то есть тебе сразу с самого начала показывают, как нормально делать чтоб нормально было, а не говнокодить лишь бы работало)
>>1249894 >>1249898 Я чет всегда думал, что фбридер только для мобильных форматов... хотя стоп, подожди, куда это меня понесло? Блядь, это же просто на андроиде имена скриншотов такие же, как в гноме. >_< Все, проехали, давайте лучше про нетривиальные корни по модулю.
>>1249895 >>1249903 Первый - это как сделал я. Второй - как было в книжке.
Мне стоило некоторых усилий понять, почему в книжке было не так, как у меня. Пришёл к выводу, что #t в результатах cond это уже само по себе говнокод.
Вообще, если в условии стоит предикат и #t, то это повод задуматься над тем, не стоит ли это условие засунуть в состав OR, поскольку любое условие в составе OR при правдивости и так вернёт #t и прекратит разбор, так что не понадобится лишних определений вида cond () #t, т.к. они оправданы только если нужно переопределить вывод. В первом случае ((null? lat) #f) действительно переопределяется вывод, т.е. вместо #t там #f. А во вторых двух вывод стандартный в рамках данного выражения, поэтому вариант с OR чище и читаемее.
>>1249911 >>1249916 >Вот такое вот выкраивание - это и есть говнокод Представь функцию, которая переводит буквы из строчных в заглавные в ascii. Можно сделать тристапятьдесят мильёнов if-else "является ли эта буква буквой а", "является ли эта буква буквой б" и так далее, а можно просто вычесть из номера расстояние от любой строчной буквы до соответствующей заглавной, и получится то же самое, только в триста раз короче и элегантнее. Вот тут то же самое, только лайт версия. Можно наговнокодить тысячу проверок () #f, а можно красиво и кратко
Можно сегодня без похвалы от мистера "я делаю тридцатый метод в битриксе для управления хуйнёй_нейм, потому что я тридцатый по счёту погромист, которому пришлось работать с хуйнём_нейм"
>>1249922 >Индентировать код пробовал? Он и был индентирован, Anki всё сожрал, там же хтмл внутри.
>>1249929 >Эм, ты в уме не можешь в схемовский синтаксис перевести, или что? Нет, если мне незнакомо на чём ты это писал. Ты предлагаешь мне гуглить редьюс и разбираться самому? А может лучше сам попробуешь на схеме черкануть, вместо того, чтобы переводить игру к себе на поле? Иначе ты хуй собачий, если кому-то вякаешь за код на схеме, а сам приводишь кложевский (это кложа?)
>>1249940 Перевод слов или их значение в контексте? Первое да, второе нет, как кстати и не знаю смысл квадратных скобок, ибо я не лиспоёб и не рассматривал другие диалекты. И кстати это не имеет отношения к теме разговора (не пытайся перескочить на "фуу ебать не не знаешь ненужную/нужную хуйню, которую знаю я")
Зато имеет отношение к теме тот факт, что ты сам прекрасно понимаешь, что на схеме так коротко не написать, но предъявляешь мне за код на схеме.
Знаете, чем меня очень пугал SICP 3-5 лет назад, когда я учился в универе? Тем, что я на видосиках увидел эти жуткие старые машины, которые выводят оутпут непонятно какого языка. И у меня сразу тригернулись воспоминания с универа, где у нас тоже был какой-то старый-престарый курс, где мы составляли микросхемы на какой-то стрёмной проге из 80ых или 90ых годов. И я сразу подумал, что мне нужно будет запускать какой-то жуткий емулятор с интерфейсом как в ДОСе и вечно придётся бороться с непонятным языком и интерфейсом. Но сейчас, решившись изучить SICP, я офигел от того, на сколько язык по своей сути прост. И мне не пришлось скачивать никаких емуляторов ДОСа - все интерпретаторы, какие нужны есть в интернете. И вещи, про которые пишет книга - типичные вопросы на интервью и тот же жаба 8 стрим АПИ. Господи, почему я так поздно начал изучать эту книгу???
>>1249947 >И я сразу подумал, что мне нужно будет запускать какой-то жуткий емулятор с интерфейсом как в ДОСе У меня для тебя очень хуёвые новости, такой интерфейс называется Unix CLI и юзается в т.ч. в топовых вузах планеты.
>>1249946 Эм... если ты не знаешь, что такое фолд/редьюс, то ты попросту не имеешь отношения к программированию, лиспоебство тут ни при чем. Это нормально (тут тред для совместного обучения ньюфагов), но для ньюфага ты что-то слишком много выебываешься. Лучше бы вместо того, чтобы триггериться и оправдываться, просто задавал вопросы, если что-то непонятно - тебе тут многие рады будут все объяснить.
>что на схеме так коротко не написать Ну вот рэкет запустил: > (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
>>1249947 Лол, видосики там олдскульные конечно. На самом деле вроде есть записи прочитанных недавно лекций, если поискать - найдешь, но я почти уверен, что там преподы все равно пишут не в repl.it, а в имаксе, лол.
>типичные вопросы на интервью и тот же жаба 8 стрим АПИ. Угу, ето так. Кстати, автор спецификации джавы - Гай Стил, тот самый, который придумал scheme (язык использующийся в сикпе). Ньюфаги не знают, олдфаги не помнят, но вообще-то намерение дизайнеров джавы было в том, чтобы затащить с++ говнокодеров одной ногой в лисп точную цитату можешь погуглить, что-то типа "drag half-way to lisp". Алсо, автор стрим апи (Брайан ГОЙец) - тот еще элитист, ненавистник говнокодеров и ООПущенцев и сторонник/одобрятель функциональщины.
>>1249957 В кложе - не будет, если написать правильно (там можно обернуть значение в reduced, чтобы оно сшортсыркуитилось при редакшене). В х-ле по идее тоже не будет, ибо фолд там ленивый. В схеме вот не уверен, как это чотко сделать без реализации своего short-circuit фолда, может знающие подскажут.
>>1249899 > Они же пишут: если нетривиальная хуевина существует - то n не простое. А существует она тогда, когда a^2 mod n = 1. Так ведь? Ну да, пишут, что нетривальный корень - это число не равное 1 или n-1, которое возникает перед возведением в квадрат.
Можешь, пожалуйста, привести пример работы алгоритма при a=2 n=7. Так будет проще всего
>>1249947 > Господи, почему я так поздно начал изучать эту книгу??? В точности мои мысли. Я её купил на втором курсе по какой-то адской цене (больше 1к, это даже сейчас за книгу дохуя), прочитал введение, испугался, что СЛОЖНО и оставил пылиться на книжной полке до окончания аспирантуры, убеждая себя, что ну вот в этом-то семестре летом точно займусь. Таки занялся и страшно жалею, что прямо тогда же её всю и не прорешал.
Для тех залётных, которые продолжают спрашивать, нужен ли сикп. Середина-последней-главы-кун репортинг ин. Каждый раз, как берусь за упражнения, и читаю, что нужно сделать, в голове сразу "ёёёёб твою мать, это же пиздец сколько возиться, придётся весь сегодняшний вечер на одно упражнение угробить", и лицо становится, как пикрелейтед. Таки пересиливаю себя, открываю редактор емакс и... хуяк-хуяк, и за двадцать минут всё делаю. Мозг-то уже задрочен под императивную дрисню питон, и отвык от того, что программирование может быть лёгким и приятным. Поэтому я его и мурыжу уже скоро год как.
>>1250405 >мы проверяем, не нашли ли мы "нетривиальный квадратный корень из 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 - составное
>>1250535 Блять, что такое вообще "корень из 1 по модулю n"? У меня голова взрывается. >Малой теоремы Ферма, которая состоит в том, что если N - простое число, а а - произвольное пложительное целое число меньшее n, то а в n - 1-ой степени равняется 1 по модулю n Тут, например, я 10 минут ломал голову, пытаюсь понять нахуя делают 1 mod n, после чего понял, что это из степени извлекают остаток
>>1250543 >пытаюсь понять нахуя делают 1 mod n, после чего понял, что это из степени извлекают остаток Ээ, погугли что такое "арифметика по модулю". На первом курсе любой техшараги же изучают.
>>1250535 Многабукавнечитал, на всякий случай перечитай мой первый ответ тебе: >Наоборот же, если число НЕ является нетривиальной квадратной хуевиной, то число (может быть) простое. Они же пишут: если нетривиальная хуевина существует - то n не простое. А существует она тогда, когда a^2 mod n = 1. Так?
>>1250557 Всё это отлично применимо в веб-макакинге. После творческого переосмысления.
Тем более, что js-макакинг уверенно движется в сторону функциональщины и реактивщины. И обычная макака такие вещи не понимает, и считает просто магией. А необычная макака - получает конкурентные преимущества.
>>1250843 > Забудьте про SICP. Читай «Алгоритмы и структуры данных» Вирта, читай Седжвика и Кормена, читай Кнута, в конце концов. Там есть все. Вирт, Кормен и Крут хороши, но ни разу не заменяют SICP. Читать нужно всё.
>>1250923 А ещё прежде чем перейти к алгоритмам, надо бы читнуть дискретки, ОС, архитектуры пк, сетей, БД, и вся эта хуйня пойдёт после сикпа куда лучше, чем до.
А после алгоритмов она вообще не пойдёт, ибо усадить ньюфага за кормена это лучший способ отбить ему навсегда желание вкатываться. Для попытки сократить рынок конкурентов эта - слишком жирная уж куда жирнее, чем совет начинать с сикпа
Странный вопрос, но если сикп так хорош, почему какой нибудь васян просто не перепишет эту книгу сн ормальным языком программирования? Это же куча денег.
>>1251440 1) Почитай про Парадокс Блаба 2) > Язык Для примеров и практики в книге используется язык Scheme (Ским), созданный авторами курса. Это один из диалектов семейства Lisp. Как и полагается любому Lisp-языку, Scheme имеет примитивный синтаксис, который можно изучить буквально за несколько часов. Он очень необычен для тех, кто имел дело только с широко распространенными языками, но обладает рядом серьезных достоинств, о которых говорится в книге.
Его выбор, в качестве основного языка для курса обоснован тем, что Scheme позволяет сосредоточиться на сути вещей вместо синтаксиса, увидеть чистые концепции в первозданном виде. Scheme как и любой Лисп, обладает невероятно высокой выразительностью благодаря тому, что в языке всё есть выражение, а инструкции отсутствуют вообще.
Вторая причина — гомоиконность. Свойство языков, в которых данные и код — одно и тоже. Этот тезис сложно понять на словах, его нужно прочувствовать на практике. Есть еще и третья причина — макросы, но они в книге не используются.
>>1251497 >Почитай про Парадокс Блаба >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 С козырей зашёл))
>>1251440 Переписали на кучу языков, но толку от этого ровно ноль. Схемка там специально используется потому что она простая как дерево. Какой смысл использовать для обучения вместо нее какой-то навороченный сложный язык? Это же глупо. Книга не про язык, а про программирование.
>>1252260 Хуй знает, я такими извращениями не занимался, но тащем-то подойдет любой, где есть scheme. Могут быть маленькие отличия с книжками (типа немного других имен функций), но это мелочи.
Спасибо, что беспокоитесь. Учеба была приостановлена ввиду командировки. Ближайшие несколько дней тоже будет не до обучения. Ну а так с лямбдой разобрался, на том и остановился. Будет время - дальше пойду. А так полон энтузиазма, все идет хорошо.
А зачем сикп советуют тем, кто только вкатывается и не знает ни одного языка? Это же явно мем какой-то. Сам джуночмо полугодовое, книга очень хорошо заходит, в том смысле, что открывает глаза на многие вещи, или просто структурирует знания. Может, какая-нибудь другая делала это не хуже, но мне не с чем сравнивать, эта первая, с которой я решил развиваться. Вообще тяжело, но реально, некоторые вещи доходят не сразу, но все же через час, два, день становится понятнее. Вот только вкатывальщику это будет почти бесполезно. Ладно, польза будет, но не worth по затраченному времени/полученным знаниям, как говорится.
>>1253397 Эм, ну как бы си, си++, джаву, го, питон, руби, жс, хаскель, окамл, джулию, эр, эрланг, верилог, пролог... тысячи их. Ты уже понял, что задал тупой вопрос? Алсо, почти все материалы доступны у них на сайте, сходи да посмотри.
>>1254221 >Однако не нужно их боготворить. Из ленты твиттера легко выглядеть страшным, но если посмотреть, как они работают в реальной жизни, то увидите, что они не такие выдающиеся. Везде хаки и т.д. Все мы просто экспериментируем.
Золотые слова.
Алсо, проиграл с этого: >Мой конфиг Emacs в бардаке. Я не знаю, почему у меня сломано автодополнение OCaml (уже более месяца). Я не автоматизирую вещи и приходится иногда копаться в истории шелла, чтобы найти нужные команды. Братишка, дай-ка я тебя обниму!
>>1254938 Где тут прямоугольники увидел? Тогда там получается идет постоянное увеличение стороны f(a + dx + dx/2) + f(a + 2dx + dx/2) и т.д. Типа один прямоугольник накладывается на предыдущий, поменьше. Это ж бред.
>>1254955 И что тут тогда dx? Если сторона прямоугольника, то это должна быть нижняя сторона, потому что на неё в конце идет умножение, т.е. размер нижней стороны каждого прямоугольника. Что тогда она делает внутри скобок? Зачем её плюсуют?
на википедии про способ "прямоугольников" все понятно, но тут ничего не ясно
>>1254955 > Типа один прямоугольник накладывается на предыдущий, поменьше. Они не накладываются, посмотри внимательнее на формулу.
>>1254957 Через dx в книге зачем-то обозначен шаг, который все всегда обозначают через h. Если что, h = (b-a)/n . С учётом этого в сикпе совершенно очевидно приведена формула метода средних прямоугольников.
Лиспаны, если у вас так плохо с математикой, надо было с HtDP начинать, он для гуманитариев.
>>1254957 Я тож сначала все начал усложнять из-за []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 мин.
>>1255431 Вот не надо к нам весь трешак сливать. В web полно программирования и "problem solving", но вот из-за таких вот набежавших "установщиков вордпресса".....
>>1255433 Очевидный smalltalk очевиден. Чтобы понять, как оно работает - scheme и си. Чтобы обдрочиться паттернами - джава. C# - пожалуй худший вариант из возможных, лол, ни рыба ни мясо.
Оп продолжил обучение. Все идет хорошо, примеры потихоньку решаются. Тупой вопрос хотел задать, ответ на который по ходу учебника еще не попадался. Вот я написал программу, через "ран" ее проверил и указало, что я крутой пацан и могу изучать учебник дальше. А вот если я хочу задать переменные в эту функцию и посмотреть, как он будет считать, что мне нужно прописать? Пытался через define или знак равно связать переменные с каким-то числом или списком, нихуя не дает. Да и не только в этой функции, допустим даже как связать х с 4, а y связать с 8 ? И чтобы он считать начал.
>>1256149 О, опец! :3 Ты немного путаешь аргументы функции и глобальные переменные. Те имена, которые ты пишешь в (lambda (ВОТЗДЕСЬ) ...) - они доступны только ВНУТРИ функции. То есть ты на них не можешь как-то снаружи повлиять, кроме как вызвав функцию с нужными аргументами: (shorter первыйлист второйлист).
Алсо, ты что ли не проверяешь в репле каждую функцию после того, как ее определил? Типа просто пишешь определение, жмешь run, запустилось - значит работает, лол? А что именно она делает и совпадает ли это с тем, что тебе надо - это типа похуй, лол? У тебя ведь нижнее окошечко специально для того, чтобы ты там свои функции вызывал.
Для более навороченного тестирования есть https://docs.racket-lang.org/rackunit/, но тебе это пока не надо. Просто вызывай свои функции с разными аргументами и проверяй, что они правильно работают. Алсо, всегда обращай внимание на крайние случаи: например, если твоя функция принимает список - проверь, работает ли с пустым списком. Если принимает число - проверь, работает ли с нулем в качестве аргумента, или с отрицательным числом, и т.п.
>>1256161 Хорошо, это понял. Но как мне задать, например Х, чтобы он был равен 5 и посмотреть, что программа выдаст? Через define и знак равно пробовал, пишет, мол Х не определен, мол функция не знакомая, что-то такое.
Начал читать HTDP, застрял в начале с ракетой-летающей тарелкой. https://pastebin.com/XqRM845E По ходу чтения пишется функция, которая принимает высоту размещения ракеты, если эта высота больше сцены, где должна быть ракета, то ставит ракету вниз, так, чтобы изображение было видно целиком, а не половину, для этого вводится константа ROCKET-CENTER-TO-TOP, где рассчитывается нужная высота. Нужно добавить землю в нижнюю часть сцены высотой 10 рх - это я сделал, далее пытаюсь сделать так, чтобы ракета садилась уже на землю, а не в самый низ, перекрывая ее. Редактирую расчеты этой константы, где отнимаю эти 10 рх земли. Но она выше земли, т.е. надо отнимать не 10, а 5 рх. Что я делаю не так?
>>1256329 правильно, вычитать надо 5, то есть половину от высоты земли это из-за того, что у тебя координаты НЛО - это координаты середины НЛО, а не её нижней части HEIGHT - высота всей картинки Если располагать НЛО на этой высоте, тупо HEIGHT, то будет торчать лишь половина НЛО Поэтому там вычитается также не вся image-height, а делённая на два, так как половина и так торчит
>>1256337 землю ты располагаешь по той же системе, как и НЛО то есть ты должен вычесть из HEIGHT половину высоты земли А у тебя земля располагается по высоте HEIGHT То есть у тебя торчит не 10 пикселей, а 5
>>1256340 в общем когда GROUND размещаешь, надо не HEIGHT а (- HEIGHT 5) (минус половина от высоты земли) И тогда всё будет окей, и можно будет вычитать законные 10
Хочется развиваться, сам react разработчик, нравится ФП, где можно применяю рамду, пользую часто пайпы, каррирование. Но этого мало в джс. Сейчас сикп прохожу, а после буду смотреть в сторону какого-нибудь фпшного языка. Только вот я чекал все вакансии по основным, и там все грустно. Erlang/elixir/clojure 20-80 вакансий на всю Рашку, да и то там не чистые вакансии под этот язык, а в связках в других. Разве что scala имеет под 500 предложений. И что делать? Мне-то конечно хочется именно для своего общего развития это учить, но и деньги зарабатывать тоже не помешало бы. Похоже придется скалу брать, хотя это тоже смесь как и джс, и вообще она в вакансиях часто с джавой в связке встречается. Почему именно с джавой?
>>1256375 Сейчас подумал, скорее всего это будет Go, или Scala как второй вариант. Что-то чисто фпшные языки не особо востребованы судя по вакансиям. Но я еще не скоро закончу книгу, и вообще медленно двигаюсь из-за работы, слишком выматывает. Еще и htdp хотел прорешать... Поэтому неизвестно когда начну что-то другое учить, там мб и поменяется что-то на рынке.
>>1256379 так хтдп проще сикпа гораздо, если сикп плохо заходит, то сначала хтдп накати если нормально, но просто забей на хтдп а насчёт ЯПов Erlang точно используется в продакшене с хорошей зарплатой а у Elixir очень хорошие перспективы, мб взлетит ещё
Щас прохожу сишный курс и дошёл до рекурсии. Помню, как начинал сикп и читал про хвостовую рекурсию там, прямо в книге писали "как же это охуенно".
Вопрос назрел а нахуй нажна оптимизация хвостовой рекурсии? Чтобы что? В сикпе авторы топят за "простые математические описания", но если скажем тот же факториал рекурсивно расписать "просто математически", то там будет обыкновенная рекурсия со всеми вытекающими (попробуй возьми факториал сильно большого числа и привет переполнение стека). Это я про n = n + fact(n -1). Хвостовая рекурсия это не этот случай, ведь надо же где-то хранить n. Чтобы всё работало, надо пилить особую, уличную функцию, которая будет брать два аргумента вместо одного. И это уже нихуя не очевидно в сравнении с чисто рекурсивным определением. И что это в итоге даёт? Определение хвосторекурсивной функции имеет в моих глазах тот же уровень очевидности и простоты, что и итеративной. Да и в глазах компилятора тоже. К чему тогда весь этот цирк, чтобы что? Чтобы иметь возможность при случае взять не весь факториал, а кусок факториала от такого-то числа m до такого-то числа n? Хм, охуеть полезно. Короче мысль моя такая, что хвостовая рекурсия - это просто чьи-то хотелки.
>>1256435 Моя мысль в том, что тсо не господь бог и оно умеет превращать в цикл только то, что и без него можно было сделать циклом. Ты будто вообще не читал мой пост. Вот если бы компилятор мог взять моё n + fact(n - 1) и сделать их этого цикл, то я бы преклонился перед могуществом его создателей. Но он может сделать цикл только из того, из чего я и сам могу. Ну и зачем тогда мне такой функционал? Ответ - синтаксический сахар и более ничего.
>>1256375 > Хочется развиваться, сам react разработчик Очевидный clojurescript + re-frame/om очевиден. Если ты толковый спец, то тебя оторвут с руками (в том числе на удаленку в европку но учти, что конкуренция высокая, нужно быть реально сеньором-помидором не уровня /b), плюс тебе не нужно учить еще и новый стек в дополнение к новому языку, ну и вообще переучиваться не нужно, все новые знания у тебя будут логическим продолжением старых. А после этого через кложескрипт можешь и на обычную жвм-кложу пересесть да микросервисы поклепать, а там уже и до скалы рукой подать, если захочется.
>Почему именно с джавой? Потому что она на jvm, очевидно.
>>1256424 >И это уже нихуя не очевидно в сравнении с чисто рекурсивным определением. Очевидное определение факториала - это fold (*) [1..n].
Хвостовая рекурсия нужна 1) для языков без циклов циклы - синтаксический сахар, анон выше все верно сказал 2) для более естественного выражения алгоритмов над иммутабельными данными. Цикл подразумевает изменение переменных, хвостовая рекурсия - нет.
>>1256585 >Очевидное определение факториала - это fold () [1..n] Нет. Очевидное определение факториала я написал выше, его можно понять без знания программирования вообще. fold () [1..n] - нельзя.
>Хвостовая - не засирает, мимокапитан. Мимонечитавший диалог, ты хотел сказать? Я о том и говорил, что нормальное рекурсивное определение очевидно для читающего, но не обрабатывается компилятором как хвостовая рекурсия, а чтобы обрабатывалось его надо переделать в неочевидное подобие цикла.
>>1256595 >Нет. Факториал в математике определяется как произведение чисел от 1 до n проверь сам с помощью поисковой системы. Ничего общего с твоим неправильным, кстати определением это не имеет, зато имеет все общее с моим. Тот факт, что я записал его в немного другом синтаксисе, не влияет ровно ни на что. Приведенное выше определение на русском языке немецкому математику понятно тоже не будет, но менее очевидным оно от этого не станет.
>Мимонечитавший диалог, ты хотел сказать? Нет, я не хотел этого сказать. Перечитай еще раз вот с этого поста: >>1256491 - особенно последнее предложение.
>>1256606 > Ничего общего с твоим неправильным, кстати определением это не имеет, зато имеет все общее с моим Мы, долбоёб, говорили о рекурсии.
>Нет, я не хотел этого сказать Разумеется не хотел, зачем же тебе выставлять напоказ тот факт, что ты нихуя не понял о чём речь идёт. Только зачем в таком случае в чужой разговор встревать, разве что ради троллинга тупостью.
>>1256606 > неправильным, кстати И да, с этого момента поподробнее, будет забавно посмотреть как ты вновь начнёшь срать под себя в попытках доказать, почему же оно неправильное. Подсказка: эта строчка - не единственная в функции (на случай если решишь подрубить дурочку), она входит в состав условного выражения.
>>1256673 > И да, с этого момента поподробнее По твоему определению, 6! = 1+2+3+4+5+6=21. Верное значение 6! = 720. Прежде чем рассуждать о хвостовой рекурсии, в которой ты нихуя не понимаешь, сначала вылечи свою дислексию.
>>1256686 >По твоему определению, 6! = 1+2+3+4+5+6=21. Верное значение 6! = 720. Ты дебил? >сначала вылечи свою дислексию Только после тебя, долбоёб прикапывающийся к случайному плюсу вместо звёздочки. Ты ведь всё прекрасно понял, но за неимением ничего лучшего доёбываешься до промаха по клавише, ведь по сути вопроса сказать нечего. Щас ещё доебёшься до n вместо fact(n) в левой части, эдакий скоморох. И прекрати под каждым постом писать "мимо", мимо это предупреждение о том, что автор поста не сможет участвовать в дискуссии, а ты ещё как можешь, всё тут засрал своими "мимо"-воплями.
>>1256709 >к случайному плюсу Ага, в двух разных постах. Оправдываться передо мной не надо, пиздуй к невропатологу.
> И прекрати под каждым постом писать "мимо", мимо это предупреждение о том, что автор поста не сможет участвовать в дискуссии, а ты ещё как можешь, всё тут засрал своими "мимо"-воплями. Под кроватью у тебя тоже Семён? Я даже не знаю, что такое fold, лол.
>>1256716 >Ага, в двух разных постах Не вижу противоречий. Слыхал про "абстракции", это такая хуйня когда написал что-то и потом обращаешься с этим чем-то как с примитивом, не вспоминая что у тебя там опечатка >Оправдываться передо мной не надо Но при этом ты тут же оправдываешься передо мной, рассказывая какой же ты не семён, и ты даже значение "fold" не знаешь. Жалкое зрелище.
Ты так и не пояснил, каким образом ты сделал такое хитрое умозаключение, как "сделал опечатку в формуле да пусть даже не опечатку, предположим я реально не знал или не помнил что факториал это не суммирование => не понимает что такое хвостовая рекурсия" И какое отношение имеет заявление "циклы это синтаксический сахар" к собственно рекурсии? Циклы это не синтаксический сахар над рекурсией, а скорее тогда уж над конструкцией с условным переходом (с этим можно поспорить, но суть в том что по крайней мере к рекурсии эта богадельня отношения не имеет). Пока единственный более-менее аргумент, который тут всплыл, это "Цикл подразумевает изменение переменных, хвостовая рекурсия - нет". Правда он всё равно не даёт ответа на вопрос "почему сассман считает, что делать функцию-обёртку для другой функции, которая вызывает себя с новыми аргументами в конце - столь охуенный подход в сравнении с использованием цикла (будь он хоть тысячу раз синтаксическим сахаром над чем угодно, это не столь важно, главное что он ЧИТАЕМЕЕ хвосторекурсивного аналога, и в то же время вместе с ним проигрывает в хламину по читаемости простому рекурсивному определению, которое однако забивает стек)"
>>1256814 > каким образом ты сделал такое хитрое умозаключение, как "сделал опечатку в формуле да пусть даже не опечатку, предположим я реально не знал или не помнил что факториал это не суммирование => не понимает что такое хвостовая рекурсия" Да ты же сам написал, > Вопрос назрел а нахуй нажна оптимизация хвостовой рекурсии? Пиздец ты у мамы манявратор.
>>1256838 >Да ты же сам написал, >> Вопрос назрел а нахуй нажна оптимизация хвостовой рекурсии? Так а причинно-следственная связь где, не подскажешь? Когда из факта "сделал опечатку в формуле факториала" следует вывод "не понимает что такое хвостовая рекурсия", потому что ... Вот на месте многоточия и должна была быть твоя цепочка умозаключений, приведшая от первого ко второму.
Если ты настолько тупой, что решил что это и должна была быть хвостовая рекурсия, то поздравляю, у тебя дислексия. Ибо я прямым текстом написал, что 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 единицу) верни произведение
Вопрос в том, почему автор считает, что второй вариант дохуя понятен и читаем в сравнении с третьим и вообще столь же понятен, сколь и первый?
>>1256908 >Ооооооо, скобочки! В коде на клжс скобочек раза в полтора меньше, чем в коде на жс+жсх, кстати. Меня до сих пор вымораживает неудобное чужеродное жсх-говно с препроцессором вместо православного [:tag.class ...]
>>1257203 Ну цикл же Пусть на си - https://pastebin.com/XT2XA7cX Не знаю, может ли схема в циклы, но это и не имеет значения, главное что вот эта сишная функция такая же неочевидная в сравнении с простой рекурсией, как и хвостовая рекурсия. Но в книге чётко помню: имело место нахваливание хвостовой рекурсии и увещевание, что TCO улучшает потенцию и избавляет от болезней, хотя по факту выходит неочевидная циклоподобная хуита в противовес простому и понятному (но рекурсивному) первому варианту. Вот когда первый вариант компилятор сможет переделать без рекурсии, тогда и приходите.
Посмотрел по диагонали, книжка интересная, разжевано все от и до. Если бы еще примеры на Coq'е были - вообще цены бы не было, а лисп-то нахуй нужен. Но для общего понимания все равно годнота.
Сегодня (уже вчера, блять) 1.2.2. осилил. Постиг суть задачи о размене денег и задачи Фибоначчи. Как же я охуенно после этого, даже хоть и маленького, свершения себя чувствую. Посоны, если впадаете в хандру и депресируете, то ебашьте сикп — станет легче и почувствуете смысл жизни.
>>1260367 >если впадаете в хандру и депресируете, то ебашьте сикп — станет легче и почувствуете смысл жизни. Или почувствуете себя последним дауном, если не пойдет :) даже галочку поставлю
>>1257868 Что и требовалось доказать - ты оказался неспособен прочитать мой пост, максимум на что тебя хватило - распознать там знакомую строку.
>>1257973 > На твои вопросы тебе ответили еще постов 10 назад. На вопрос "зачем нужна оптимизация хвостовой рекурсии" был только один отдалённо похожий на аргумент кусочек ответа, и я уже об этом говорил, поэтому придётся цитировать самого себя, ибо тупой даун не может не только читать, но и запоминать мои посты:
>Пока единственный более-менее аргумент, который тут всплыл, это "Цикл подразумевает изменение переменных, хвостовая рекурсия - нет". Правда он всё равно не даёт ответа на вопрос "почему сассман считает, что делать функцию-обёртку для другой функции, которая вызывает себя с новыми аргументами в конце - столь охуенный подход в сравнении с использованием цикла (будь он хоть тысячу раз синтаксическим сахаром над чем угодно, это не столь важно, главное что он ЧИТАЕМЕЕ хвосторекурсивного аналога, и в то же время вместе с ним проигрывает в хламину по читаемости простому рекурсивному определению, которое однако забивает стек)"
>>1258551 Видел современный курс мита, который с питоном - так там большая часть примеров и все понятия из сикпа, только вместо схемы питон. Вот прям смотришь и чувствуешь сикп. Как по мне - шо то, шо это без разницы (ибо об одних и тех же вещах говорят что в сикпе, что в 6001), только подача в видеокурсе намного лучше, а язык немного, но неоправданно сложнее. Был бы видеокурс с тем же самым построением (чтоб и видосы короткие, и мини-задания со встроенным интерпретатором схемы), но со схемой - был бы абсолютный идеал курса для начинающих погромиздов. Хотя нет, не идеал. Идеал бы был, если бы они подразгрузили курс от абстрактных математических примеров и поднагрузили наглядными. Вот тогда был бы идеал.
Читаю хтдп, щас на 4ой главе, дошёл до упров в теме S-expressions. Но сейчас не об этом. Много делал прог со списками (в плане cons, list, ', `), вложенными структурами (в том числе деревья, леса). Судя по тому, что деревья в теме про них (в хтдп) были исключительно в виде вложенных структур, хочу спросить у вас, кольцевые списки реализовать можно только через вложенные структуры? Через list/cons/etc не прокатит?
>>1260580 > Идеал бы был, если бы они подразгрузили курс от абстрактных математических примеров и поднагрузили наглядными. Что может быть нагляднее квадратного корня или интеграла? Деревянные кубики с изображениями мультяшных животных на гранях?
>>1260580 >и в то же время вместе с ним проигрывает в хламину по читаемости простому рекурсивному определению Это еще почему? Если брать 3 способа нахождения факториала, то цикл точно ГОРАЗДО проще воспринимается, чем другие два. И линейно итеративная будет очевидно на втором месте с большим отрывом от линейно-рекурсивной. мимо нюфаня, читаю sicp
>>1260605 Вроде бы подобные трюки со списком, включающим самое себя в качестве элемента, невозможно перевернуть без мутабельности, ну т.е. без set-cdr! ну или set-car! там.
>>1260594 Традиционный двусвязный список ты (по очевидным причинам) в функциональном\иммутабельном стиле не сделаешь. Если тебе нужна цикличность представления данных в предметной области, то это всегда делается другими способами (в том числе в императивном стиле), непрямо, индиректно - ну типа там можно использовать айдишники для ссылок на другие сущности в домейне, например. Если тебе хочется именно как ты тут >>1260605 написал, то заметь, что это не совсем "кольцевой" в традиционном понимании список (ты не можешь его посередине разорвать и вставить еще что-нибудь туда, например), но рекурсивный список. Такие можно сделать в clojure, haskell или любом другом языке с поддержкой ленивости. Ну то есть суть в том, что ты определяешь список рекурсивно (через самого себя), поэтому он у тебя получается бесконечным (и все должно бы взорваться), но ленивость позволяет не считать его сразу целиком и полностью (молодой человек, это не для вас посчитано), а брать столько элементов, сколько нужно (и потом после обработки выкидывать ненужные, так что потребление памяти остается константным).
>>1260656 >Ну то есть суть в том, что ты определяешь список рекурсивно (через самого себя), поэтому он у тебя получается бесконечным (и все должно бы взорваться), но ленивость позволяет не считать его сразу целиком и полностью (молодой человек, это не для вас посчитано), а брать столько элементов, сколько нужно (и потом после обработки выкидывать ненужные, так что потребление памяти остается константным). Это, кстати, называется stream и подробно описано в сикпе в главе 3.5.
>>1260996 Анон, тут тебе не форчан. Я же вроде подробно расписал - я не знаю, что тебе непонятно. Ленивость - это ленивость, стрим - это стрим. Это вообще разные категории.
>>1260601 > Что может быть нагляднее квадратного корня Квадратный корень сам по себе это хуй с ним, но там же ньютоновский (или чей там) алгоритм нахождения приближения, потом факториалы с Фиббоначчи, башни хануи, короче явный передоз математики. Хотя рекурсию хорошо пояснять на факториале и башнях хануи, но вот всё остальное вполне могло обойтись более жизненными примерами. Хотя в сикпе была задача на размен монет, но она была чересчур заёбистая (или я в то время был такой тупой). Давали бы лучше задачи типа номер кредитки проверить - тоже математика, но жизненная.
>>1261089 >Хотя в сикпе была задача на размен монет, но она была чересчур заёбистая Вот, кстати, поддвачну, терпеть не могу такие задачки на жизненную сообразительность)))))))))))))
В DrRacket есть возможность подключения модулей, тичпаков (модулей с другим названием по сути), использования различных языков К примеру #lang racket (require r5rs) Здесь я подключаю, по моей логике, стандарт (отдельный ЯП) Scheme, совмещаю его с Racket Это так, или же это какой-то модуль, инициирующий R5RS?
>>1261357 Как раз таки в курсе. Задача "сколькими способами можно набрать мелочью такими-то монетами такую-то сумму" решается вываливанием всей мелочи из кармана на ладонь и протягивании этой ладони кассиру, чтобы она сама отсчитала, сколько нужно. Я в рот ебал над такой хуйнёй думать.
Какой течпак нужно добавить в ракете, чтобы читал функции, типа set-cdr! putq! set-car! push pop и другие? Или блядь их всех в нотации прописывать надо всегда?
>>1261391 Так это задача про комбинаторику и алгоритмы, а не про считание мелочи. Просто сформулирована с наглядными предметами, чтобы было легче в голове представить.
>>1261392 гугли #lang sicp устанавливаешь его после пишешь #lang racket (require sicp) По идее так всё окей Или же другой вариант, с (require r5rs) Кажется тоже рабочий
>>1261358 Бля, по-моему require чисто подключает модули, то есть оно просто доставляет тебе все функции, определенные в стандарте r5rs. А #lang может делать вообще что угодно, он именно говорит ide ракетки, что дальше идет код на таком-то языке (сам язык может быть вообще никак не связан со схемой).
>>1261463 Лучше начни с чего попроще, особенно если в математике слаб. Конечно, и с этой книги можно начать, но чтоб ее осилить придется приложить немало усилий и в сочетании с тем, что по мере чтения ты не будешь понимать куда реально можно приложить те знания, которые она дает, есть немалый шанс, что на программирование ты просто забьешь.
>>1261391 > сколькими способами можно набрать мелочью такими-то монетами такую-то сумму Вот в этом и кроется переусложнённость. А надо было вместо этого "напишите прогу для кассира, в которую забиваешь сумму сдачи, а она считает сколько каких монет выдать, чтобы монет было как можно меньше в общем" Но это не про наш сикп, наш сикп при первой возможности спешит удариться в матан.
>>1261405 Скачал сикпа течпак, там несолько файлов, пробовал, хуй получилось, все через жопу. А r5rs попробовал, вроде нормально. Глубоко не лез, уже засыпаю, но вроде работает. Спасибо.
Оп опять вкатывается. Нихуя не могу понять, что нужно сделать, чтобы команды сразу определяло (square; reciprocal; double-any; lisp-cdr; sign; income-tax; remv и др.). Течпак с сайта ракеты скачивал, там несколько файлов, нихуя ни один не подошел, чтобы эти команды работали. Не, ну в учебнике есть расшифровки этих команд, но блядь мне большим копипастом всегда вставлять что-ли? Или может самому как-то создать, так скажем плюсом к тому, что уже заложено, я бы скопипастил из учебника в «свой» течпак, где были бы расшифровки и глаза чтобы не мозолить? R5RS какие-то другие функции может прочитать, но тоже по большому счету хуета.
А какой уровень знания английского вы считаете приемлимым? И как посоветуете поднимать скилл? Я пытался на английском читать пару книг (не sicp) по программированию. Дропал через пару десятков страниц. В среднем я встречал 1-3 незнакомых слова на абзац. Но незнакомые слова это не главная проблема в чтении на инглише. Главная проблема - приходится сильно сосредотачиваться, чтобы понять написанное. То есть, слова вроде все знакомые, но все равно перечитываешь несколько раз, чтобы в голове более точно перевести на русский. Я, кончено, слышал такое: ты знаешь английский, когда можешь на нем думать или что-то вроде этого. Но реально ли вообще обходиться без перевода в голове, если ты живешь в России и все вокруг на русском языке?
>>1262606 > А какой уровень знания английского вы считаете приемлимым? Который для меня комфортный. Что за вопросы, блядь? Если понимаешь все, что тебе надо - значит приемлимый, если не понимаешь - значит неприемлимый.
>И как посоветуете поднимать скилл? Читать книги, которые тебе интересны. Тащем-то все. А, ну и не забудь на телефоне и в системе язык поменять. И видосики смешные, блядь, на английском смотри.
>В среднем я встречал 1-3 незнакомых слова на абзац. Ну так это вообще норм, в чем проблема-то? Дочитал бы книжку до конца - был бы у тебя уверенный технический английский.
>чтобы в голове более точно перевести на русский Сука, блядь, ты дебил? Нахуя ты в голове на русский переводишь, уебок? Ух блядь, пизды бы тебе дал, если бы ты мне такое в лицо сказал, долбоеб сука! Не делай так больше, блядь, читай и все.
>Но реально ли вообще обходиться без перевода в голове, если ты живешь в России и все вокруг на русском языке? Реально, если ты не конченый долбоеб. Ты не поверишь, но все так и делают, никто не переводит в голове, за исключением нерадивых школьников. Просто читай каждый день и все, это очень быстро приходит с практикой.
>>1262597 Спасибо, а то у меня из-за этих функций обучение приостановилось. Но 2 главы из 12 прошел успешно. Сейчас только 2 главу слегка перешерстить, закинуть в файлик все функции, описать их в документе и можно двигать дальше :З
>>1262617 А ты, кстати, прям в файлике и описывай все функции, как в хтдп делают: ; 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) ...)
Это тебе и для английского полезно будет, и для кодинга.
>>1263102 Ну у тебя два варианта решения задачи. Если все забись, условия там совпали, То первый вариант (b), если не совпали, равенство там не равно или ложь, То второй вариант, т.е. а. Но я оп и дебил, поэтому может не прав.
>>1263102 Кстати рекомендовал бы почитать вот это -> >>1248034 ссылка на книгу здесь -> >>1248035 а то я тоже с сикпа пытался начать, а там хуй пошло, т.к. с нуля очень сложно. >>1263227 На правду не обижаются :З
А в итт я зашел не зря, опять с дебильным вопросом. Перечитал 3 раза ссылку по внесению своих функций в ракету, чтобы само определялось, так и не понял. А нельзя вот просто скопировать один из течпаков, переименовать его и в его внутрянку скопипастить нужные мне функции, потом его запустить? В вышеуказанной статье ни про редактирование течпака, ни про создание нового – ни слова. Пытался готовый течпак вордом открыть или блокнотом – хуй на рыло. Там не так все просто или я даун конченный?
>>1263242 Какое нахуй тичпаки редактировать, ты совсем там страх потерял? Тичпак - это считай часть дистрибутива рэкета. Это примерно как если бы тебе в системе надо было шрифт поменять и ты бы предлагал лезть внутрь нее и ядро перекомпилировать, что-то такое. Вот выйдет новая версия рэкета, ты обновишься, все твои изменения в тичпаках перезапишутся - будешь заново все туда копипастить после каждого обновления? Нахуй, нормально делай - нормально будет.
К тому же тебе все равно в будующем надо будет с модулями разобраться - ты же не думаешь, что реальные программы пишут целиком в одном файлике, лол? Что тебе там непонятно, рассказывай давай
>>1263309 Да я вообще нихуя не понял, если честно, как оно делается. Ну скопировал я списком определения всех функций. По моей дебильной логике, мне бы всю эту простыню куда-нибудь закинуть, сдружить с прогой и все. А сейчас у меня только вордовский документ с простыней программ, и что с этим делать, хуй его знает. Пересмотрел раза 3 ту статью, блядь указаний к действиям там нет, но наверно я слишком тупой, чтобы скрытый смысл увидеть.
>>1263560 и раз уж ты тут, ответь плес вот пример из учебника с 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))
>>1263312 >По моей дебильной логике, мне бы всю эту простыню куда-нибудь закинуть, сдружить с прогой и все. Ну, там это и описывается. Ты создал папку для своего кода? Ты под виндой или под нормальной ОС? Создай там где-нибудь папку projects/racket/, в ней файл mylib.rkt - в него закинь все функции, которые хочешь использовать в будущем. Дальше открой ссылку, которую я тебе скинул, и прочитай, как подгружать этот файл в рэкете (provide + require).
>меня drracket нах шлёт Потому что у тебя язык ПРОДВИНУТЫЙ СТУДЕНТ для использования с хтдп, из которого выпилено все, что к этому моменту еще не было объяснено в хтдп (там еще не объясняли, что дефайн можно внутри дефайн делать, вот и говорит об этом, чтобы какой-нибудь студент не написал дефан внутри чего-то другого и думал потом почему извне этого не видно, ведь написал же). Сделай #lang racket и будет тебе счастье.
>>1263594 Ок, создам папку. А файл как создать? Просто вордовский документ переименовать в такую хуйню, а в него потом закинуть? Подключить-то хуй с ним, разберусь.
>>1263597 Какой вордовский документ, ты чего? Обычный текстовый документ, с расширением rkt. Ты где до этого-то писал все вообще? Каждый раз при запуске рэкета заново все печатал что ли? Прямо в нем напиши что тебе надо и нажми ctrl+s, введи имя-файла.rkt и сохрани куда надо. Блядь, тебе полюбас надо параллельно какой-то курс основ компьютерной грамотности проходить, типа информатики в школе, чтобы хотя бы понимать чем вордовский документ от текстового файла отличается.
>>1263615 В учебнике идет разбор функций по одной, с нуля и писал. Но там только писать эту одну функцию и приходилось. Хорошо, вечером попробую это все сделать и отпишусь, сейчас убегаю. Да я просто не касаюсь всех этих расширений, вот и тупить начал. Короче у меня в настройках расширение не указывается, я это дело включу, создам файл нужного расширения, туда скопипастю, создам директорию и по той инструкции попробую сделать. Спасибо за помощь, отпишусь вечером.
>>1263621 А что, я и вправду радуюсь, это вот как знаешь, некоторые болеют за спартак, некоторые - за цска, а я в футбол как-то не очень, так что болею за превозмогающего опа, лол.
>>1263621 >>1263639 Создал файл в ракете с нужным расширением. Внутрянка с функциями, как мне и нужно. Создал папку /racket/моя библиотека/my function.rkt А дальше залупу за воротник. Пытался подключить этот файл, как течпак, он мне выдал хуйню, мол незаконное вмешательство или какой-то подобный бред. Пытался как в инструкции через file/package manager - тоже нихуя дельного не вышло. Блядь, есть толковая инструкция? Берешь блядь файл, закидываешь в такую-то папку, заходишь в ракету, нажимаешь такую кнопку, в появившемся окне такую кнопку, потом еще одну, выбираешь этот файл, нажимаешь "ок" и живешь нормально? Какой-то пиздец неадекватный, честное слово.
>>1263835 >Какой-то пиздец неадекватный, честное слово. Почему ты ожидаешь, что абсолютно для всего в мире должна быть инструкция, в которой всё подробно разжёвано как для дебилов? Тебе разве не открылось блаженство нахождения решения сложной задачи своими силами? Что тебе мешает для решения стоящих перед тобой проблем использовать старый, как западная цивилизация, метод trial and error? Что, в конце концов, мешает тебе скопировать текст возникающих ошибок в гугл, а затем перейти по первой ссылке и ненадолго включить мозг? Как дитё малое, ей-богу. Ты ещё бы подробную инструкцию по ебле реквестировал. "Двощ, я не могу вагинальное отверстие у тни найти, что за пиздец неадекватный?!?"
>>1263848 Просто потратить пару-тройку часов ради того, чтобы научиться закидывать библиотеку, причем безуспешно, это не нормально. Я готов тратить время и нервы на изучение непосредственно программирования. Но блядь дрочиться с КОНКРЕТНО ВЗЯТОЙ ПРОГРАММОЙ в пустяковом моменте - хуевая затея, т.к. в другой программе будет по другому добавление этих библиотек, после обновления этой программы опять же не факт, что не станет по другому. Ладно, пока буду целиком простыню копировать в верхнее окно, хуле делать. Да, ты спрашивал, с чего я взял, что подробная инструкция должна быть. Взял с того, что наверняка далеко не я первый пытался голову ломать с этой хуйней, а подробные инструкции есть даже по откручиванию колеса на машине.
>>1263851 >Просто потратить пару-тройку часов ради того, чтобы научиться закидывать библиотеку, причем безуспешно, это не нормально. Это нормально. Чем больше вещей ты знаешь, тем эффективнее работает твой мозг при генерации новых идей, и тем раньше у тебя начнётся старческая деменция.
Бля, пацаны, ну серьезно, в какую папку этот файл закинуть и как его через программу подключить? Как долбоеб блядь сижу сейчас простыню копирую в верхнюю часть программы.
>>1263851 >Просто потратить пару-тройку часов ради того, чтобы научиться закидывать библиотеку, причем безуспешно, это не нормально. Действительно.
>Но блядь дрочиться с КОНКРЕТНО ВЗЯТОЙ ПРОГРАММОЙ в пустяковом моменте Модули - это часть языка. В рэкете они работают примерно так же, как в других скриптовых языках типа питона.
>>1264277 Каждый модуль ракетки обычно находится в своем собственном файле. Например, предположим файл " торт.РКТ" содержит следующие модули: бла-бла-бла, пример модулей Затем, другие модули могут импортировать "торт.rkt "использовать функцию печати торт, так как обеспечивают линии в" торт.rkt " явно экспортирует определение print-cake. Функция шоу является частной для " торт.rkt "(т. е. его нельзя использовать из других модулей), так как show не экспортируется. Следующий " random-торт.РКТ "модуль импорта" торт.rkt": бла-бла-бла, опять пример модулей Относительная ссылка "торт.РКТ "в импорте (требуется" торт.РКТ") работает, если "торт.rkt " и " random-торт.модули РКТ" в тот же каталог. Относительные пути в стиле Unix используются для относительных ссылок на модули на всех платформах, подобно относительным URL-адресам на HTML-страницах. И че блядь мне с этим бредом делать?
Идем далее, пикрилейтед. Файла sort.rkt нету блядь. Папки machine тоже блядь нету. Папок db несколько, но хуле толку, если ни машины ни того файла нет, хуй знает, че даст эта одна папка, причем хуй знает какая именно нам нужна.
>>1264423 > Опять я тролль, да? Конечно, не бывает на свете таких тупых людей.
> И че блядь мне с этим бредом делать? Английский учить, долбоёб блядь. Тебе уже всё разжевали, как для маленького, а ты, блядь, всё равно стоишь посреди треда, плачешь и зовёшь маму. У, сука, встреть я тебя на улице, отпиздил бы, честно.
>>1264423 Еще раз, прочитай параграф 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. и просто сделай все так, как там написано: создай два файла, скопируй их содержимое со страницы в файлы, открой их в рэкете, запусти и проверь, что все работает. Опять же, если ты не понимаешь, как создавать файлы или что такое относительные пути, то тебе надо просто какой-нибудь школьный учебник по информатике прочитать, или книжку по типу "основы компьютерной грамотности", без шуток. Тебе просто надо создать два текстовых файла, скопировать в них текст, открыть их в редакторе и запустить, тут программирования-то особо нет как бы.
Захотел стать прогромисстом 300 k/наносек @ зашел на двач @ сказали читать SICP @ прочитал первые пару глав @ не понял @ >КАКОЙ ЖЕ ТЫ СУКА ТУПОЙ @ >встреть я тебя на улице, отпиздил бы, честно. @ Ну в пизду пргрмирование.
Стоит ли читать слоника, если я пока не собираюсь читать сикп? Полистал пару страниц, супер забавно написано, но надо ли оно мне, что он мне даст, кроме знания самого языка?
>>1265189 ПАЦАНЫ, Я СЕГОДНЯ ШЁЛ КОРОЧЕ ПО ГОРОДУ И УВИДЕЛ ЧЕЛА В МАЙКЕ ">>=", НУ Я ПОДСКОЧИЛ И РЕЗКО ПЕРЕЕБАЛ ЕМУ В ЩЩИ С ВЕРТУШКИ И ПОЯСНИЛ ЕГО КРИКОМ "НЕ ЛЮБЛЮ МОНАДЫ", ПОТОМУ ЧТО Я УГОРЕЛ ПО ЛИСПУ, ПАЦАНЫ ДУХ СТАРОЙ ШКОЛЫ ЖИВЁТ ТОЛЬКО В НАСТОЯЩЕМ ФУНКЦИОНАЛЬНОМ ПРОГРАММИРОВАНИИ, ГДЕ ЕБАШАТСЯ ПО ХАРДКОРУ, ГДЕ ПАЦАНЫ ЖИВУТ МЕТАПРОГРАММИРОВАНИЕМ, ИНТЕРАКТИВНОЙ РАЗРАБОТКОЙ И ЕБУТ СИСТЕМУ В РОТ! ТОЛЬКО ЛИСП ТОЛЬКО ГОМОИКОННОСТЬ, ТОЛЬКО СКОБКИ!!! ЮНИТИ УЛЬТРАХАРДКОР ЛИСП!!! пацаны ебашьте скалоблядей, эфшарперов, крестовиков, формошлепов, академиков, угарайте по метарекурсии любите Лисп, репл и Скобки! ГОВОРИТЕ ОТКРЫТО И СМЕЛО ПРЯМО В ЛИЦО! ЛИСП!
Я правильно понимаю, что самое годное, это будет взять гарвардский CS50 как вводной, продрочить его и его примеры и уже потом вкатываться в СИКП и параллельно в линейную алгебру и на это все минимум годик всадить по 2-4 часа в день а потом уже закатываться в какую нибудь новомодную лошадку типа ГО или Эликсира или чего там стрельнет через пару лет и быть боженькой(если будет хоть какой то толк, ибо всё индивидуально)?
работаю принеси-подай говном на морозе за 17к, жизнь ад, но есть много времени потому, что работаю на родню от которой лет 5 еще не сбежать. 22лвл
>>1271650 Неточности в заданиях (!), так что лучше сверяй с оригиналом, когда будешь гуглить решения. Ну и формулировки на русском сложнее воспринимаются. Читай как параллельный текст обе версии для максимального профита.
Где скачать 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