Этого треда уже нет.
Это копия, сохраненная 14 сентября 2018 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
SICP тред /sicp/ 1187852 В конец треда | Веб
Тред имени лучшей книги всех времен и народов, а так же одноименных лекций. Полагаю, здесь есть как новички, ломающие голову над ней, так и опытные ребята, прошедшие ее всю (или большую ее часть). Предлагаю замутить обсуждение как всей книги/лекций, так и каких-то отдельных моментов тут.
43713.jpg29 Кб, 316x475
2 1187855
Где скачать SICP?
На русском: 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
3 1187863
Добавил в закладки.
wizard.jpg40 Кб, 411x300
4 1187867
Где я ещё могу пообсуждать любимый SICP, кроме двача?
https://www.reddit.com/r/compsci/
https://www.reddit.com/r/learnprogramming

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

Книжки по ФП
https://www.dropbox.com/sh/ugtfwgfilgr0ebu/AABVDeYpTvcqcg22XZnYT8Eca?dl=0
687474703a2f2f7369637065626f6f6b2e66696c65732e776f726470726[...].png3 Кб, 360x223
5 1187871
>>187855

>ориджинал: http://web.mit.edu/alexmv/6.037/sicp.pdf


Эта ссылка - говно. Вот правильная ссылка с хорошим оформлением и няшными шрифтами:

https://github.com/sarabander/sicp-pdf/raw/master/sicp.pdf

Заодно еще пара ссылок (на онлайн-версию, видосы и сикп на кложе):
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/
6 1187878
>>187871
Благодарю.
7 1188154
Бамп
8 1188186
9 1188213
Уже переделали sicp в визуальную новеллу?
11 1188611
бамп
sage 12 1188622
>>188611
Ну и хули ты бампаешь? Тебе делать нехуй? Иди упражнения решай.
13 1188627
>>188622
Делаю. Бампаю раз в день, что бы тред не утонул.
sage 14 1188650
>>188627
Иди в /b бампай.
15 1189030
bump
16 1189077
>>187852 (OP)

>лучшей книги всех времен и народов


Меня The Little Books в свое время гораздо больше впечатлили. Рекомендую прочесть их перед SICP'ом.
17 1189141
>>189077

>Меня The Little Books в свое время гораздо больше впечатлили


Матёрый Senior Architect in Google в треде?
Спасибо, посмотрю.
18 1189167
>>187852 (OP)
ананасы, что читать после SICP? ахо-ульман "структуры данных", "искусство программирования" кнута?
19 1189172
>>189167
https://teachyourselfcs.com/#algorithms
у седжвика есть курс на coursera
кормен - бест справочник
20 1189487
>>189172
А как же HTDP ?
21 1189513
>>189487
Ее нужно читать до, после будет скучно.
22 1190066
Спасибо создателю сего треда, подписался) Как раз сейчас обмазываюсь, пока что в самом начале.
23 1190970
>>189167

>что читать после SICP?


>"искусство программирования" кнута?


this. А лучше - 'вместо'.
24 1191093

> 10


10
Самое первое упражнение. Это блядь по какому правилу любое число остается самим собой?
25 1191095
>>190970
Сразу видно человека, который ни одну из перечисленных книг даже не открывал.

>>191093
Копипасти релевантный текст и код в тред, никто не будет ради тебя книжку открывать и мотать в начало.
26 1191107
>>191093
А какой по твоему должен быть вывод?
Все правильно и логично выводит
27 1191110
>>191095
Ниже приведена последовательность выражений. Какой резул
ьтат напечатает интерпретатор в от-
вет на каждое из них? Предполагается, что выражения вводятс
я в том же порядке, в каком они
написаны.
10
(+ 5 3 4)
(- 9 1)
(/ 6 2)
Вот 4 упражнения, которые нужно решить. Первое из них просто 10, ответ тоже 10.
>>191107
По моему вообще не понятно, каким он должен быть, Т.к. такой хуйни в книге не было. Остальные примеры понятны и логичны, а вот то, что цифра остается цифрой, что-то я в книге не видел.
28 1191118
>>191110
Во-первых, не цифра, а число. Во-вторых, было. У тебя в выражениях последовательно читается и вычисляется каждое подвыражение, пока не получится результат, который дальше вычислять уже некуда - тогда он и возвращается. Например, (/ (+ 3 3) 2) - ты сперва вычисляешь первый элемент ("/" возвращает функцию деления), потом второй (подвыражение, вычисляется по тем же правилам и в итоге возвращает 6), потом третий ("2" возвращает число два). То есть (/ (+ 3 3) 2) -> (/ 6 2) -> 3. В "3" больше вычислять нечего, поэтому оно возвращается.

Соответственно, если ты с самого начала написал 3 (или 10), то вычислять больше нечего и оно сразу возвращается.

>По моему вообще не понятно, каким он должен быть


Ну если ты аутист, тогда да.

Алсо, можешь читнуть https://en.wikipedia.org/wiki/Statement_(computer_science)#Expressions
тлдр: в древних языках типа си делалось различие между statement (что-то делает, но ничего не возвращает) и expression (всегда возвращает какой-то результат). В современных языках все является expression'ами. И в лиспах как раз так все и было испокон веков.
29 1191122
>>191118
Спасибо, я все понял. Просто видишь, я полный ноль и хуй его знает, что с этим всем делать. Но я стараюсь. Вот ты говоришь, что в лиспах всегда так было, а я пока книгу не открыл, о существовании такого языка даже не знал.
30 1191148
а=3, б=4
(if (and (> b a) (< b (* a b)))
b
a)

and - по очереди вычисляются предикаты, истина или нет, если оба истинные, то результатом вычисления будет значение последнего предиката. И какое там блядь значение, если там знак неравенства?
(if (and (истина) (истина)))
31 1191167
>>191122
Ну, ничего страшного, ты же разобрался.

>>191148

>И какое там блядь значение


Ты у нас спрашиваешь? Может лучше у интерпретатора спросить?
32 1191172
>>191167
Интерпретатор дает ответ, как и на сайте ответов. Я пытаюсь логику решения понять.
33 1191181
>>191172

>И какое там блядь значение, если там знак неравенства?


Тебе аллах запрещает проверить в интерпретаторе, какое там значение, или что?
34 1191187
>>191181
Интерпретатор не объясняет, откуда оно там взялось. Какое там значение, я уже смотрел и в интерпретаторе и в ответах на задачи.
35 1191201
>>191187

>and - по очереди вычисляются предикаты, истина или нет, если оба истинные, то результатом вычисления будет значение последнего предиката.


Это правило вычисления cond.
If - специальная форма вида (if <predicate> <consequent> <alternative>).

>To evaluate an if expression, the interpreter starts by evaluating the <predicate> part of the expression. If the <predicate> evaluates to a true value, the interpreter then evaluates the <consequent> and returns its value. Otherwise it evaluates the <alternative> and returns its value.

36 1191208
>>191201
Блядь, еб твою мать. Короче получается у нас (and (> b a) (< b (* a b) это истина, т.к. обе скобки истинные. потом у нас получается
(if истина)
b
a.
т.к. у нас у if истина, тогда берем b, а если бы была ложь, было бы а ?
Тут блядь не то, что стакан нужен, я вообще хуй знает, как смогу со всем этим разбираться.
37 1191213
• (and〈e1〉. . .〈en〉)
Интерпретатор вычисляет выражения〈e〉по одному, слева направо. Если какое-нибудь из〈e〉дает ложное значение, значение всего выражения and — ложь, и остальные〈e〉не вычисляются. Если все〈e〉дают истинные значения, значением выражения and является значение последнего из них.
стр 37. там cond вычисляет по строкам, а and внутри одной строки. но может я не прав
38 1191214
>>191208

>Короче получается у нас (and (> b a) (< b ( a b) это истина, т.к. обе скобки истинные.


Правильнее сказать, "получается у нас (and (> b a) (< b (
a b) это результат вычисления последней скобки, что есть истина". Такие "дурацкие" на первый взгляд правила вывода обусловлены рекурсивной природой интерпретатора.

>т.к. у нас у if истина, тогда берем b, а если бы была ложь, было бы а ?


Да, все так.

>Тут блядь не то, что стакан нужен, я вообще хуй знает, как смогу со всем этим разбираться.


Чувак, отложи пока SICP в сторонку и прочти The Little Schemer, я уже писал выше. Там всего 200 страниц, тебя берут за ручку и вместе с тобой пишут интерпретатор примитивного подмножества Scheme на ней самой. После этого никакой "магии" в SICP не останется, ты интуитивно будешь понимать, почему оно так работает.
39 1191222
>>191214
А она на русском бывает?
40 1191226
>>191222
Я не встречал, скорее всего нет. Но там очень простой язык и в целом она стилизована под детскую книжку, так что можно и со словарем читать, если хоть чуточку можешь в английский. Заодно названия продуктов выучишь, в буржуйском гастрономе будешь как дома.
аа.jpg158 Кб, 946x522
41 1191257
>>191226
Хорошо, попробую. Там их несколько частей, 4, что-ли. Я скачал пикрилейтед, 211 страниц, она нормальная?
the-little-lisper.jpeg9 Кб, 200x159
42 1191264
>>191257
Да, ее было несколько редакций, и сама она в свою очередь является переработанной версией пикрелейтед. Ты скачал последнюю, все норм. Только не удивляйся особо способу подачи материала, так надо. Это работает как в фильме The Karate Kid, если ты понимаешь, о чем я.
43 1191270
>>191264
Не понимаю, о чем, ну да ладно. Буду читать такую и приму за чистую монету, Что так надо.
44 1191271
>>191208

>(if истина)


>b


>a.


Щито? (if cond b a) вообще-то.

>Тут блядь не то, что стакан нужен, я вообще хуй знает, как смогу со всем этим разбираться.


С чем "со всем этим"? С условным оператором? Я надеюсь, что ты троллишь.
45 1191287
>>191271
а=3, б=4
(if (and (> b a) (< b (* a b)))
b
a)
Где ты там (if cond b a) нашел?
Под "этим всем" имел в виду программирование, как таково, в т.ч. и условного оператора.
46 1191296
>>191287
Эм... Ты написал (if cond b a), где cond = (and (> b a) (< b (* a b))), и строчкой ниже спрашиваешь, где я (if cond b a) нашел...
47 1191299
>>191296
Я нихуя не понял. Изначальный пример тут -> >>191148 а вот тут >>191271 я в душе не ебу, откуда взяли (if cond b a), вот я и поинтересовался, Откуда это было взято.
48 1191300
>>191299
Эм, что откуда было взято? Подставь в (if cond b a) вместо cond свое (and (> b a) (< b ( a b))). Получишь свой пример. autism-intensifies*

>а вот тут


Там я тебе указал на то, что ты в >>191208-посте скобки неправильно поставил - я же загринтекстил специально.
49 1191302
АБУ СУКА ХВАТИТ СЖИРАТЬ ЗВЕЗДОЧКИ
50 1191306
>>191300
Я тебе член отсосу, если назовешь номер страницы в sicp, где учат переделывать

>Подставь в (if cond b a) вместо cond свое (and (> b a) (< b ( a b)))

51 1191307
>>191306
Да, имею в виду первые 40 страниц, после которых идут эти ебаные примеры
52 1191313
>>191306
http://sarabander.github.io/sicp/html/1_002e1.xhtml#g_t1_002e1

>1.1.2 Naming and the Environment


Страницу сам ищи.
53 1191321
>>191313
нет нихуя
54 1191325
>>191321
Извини за прямоту, но ты не очень умный. Мне кажется, что тебе следует поискать себе другое занятие, если честно.
55 1191336
>>191325
A critical aspect of a programming language is the means it provides for using names to refer to computational objects. We say that the name identifies a variable whose value is the object.

In the Scheme dialect of Lisp, we name things with define. Typing

(define size 2)

causes the interpreter to associate the value 2 with the name size.8 Once the name size has been associated with the number 2, we can refer to the value 2 by name:

size
2

( 5 size)
10

Here are further examples of the use of define:

(define pi 3.14159)
(define radius 10)

(
pi ( radius radius))
314.159

(define circumference (
2 pi radius))

circumference
62.8318

Define is our language’s simplest means of abstraction, for it allows us to use simple names to refer to the results of compound operations, such as the circumference computed above. In general, computational objects may have very complex structures, and it would be extremely inconvenient to have to remember and repeat their details each time we want to use them. Indeed, complex programs are constructed by building, step by step, computational objects of increasing complexity. The interpreter makes this step-by-step program construction particularly convenient because name-object associations can be created incrementally in successive interactions. This feature encourages the incremental development and testing of programs and is largely responsible for the fact that a Lisp program usually consists of a large number of relatively simple procedures.

It should be clear that the possibility of associating values with symbols and later retrieving them means that the interpreter must maintain some sort of memory that keeps track of the name-object pairs. This memory is called the environment (more precisely the global environment, since we will see later that a computation may involve a number of different environments).9
За прямоту извиняю. Вот 1.1.2. Где блядь эта хуйня?
55 1191336
>>191325
A critical aspect of a programming language is the means it provides for using names to refer to computational objects. We say that the name identifies a variable whose value is the object.

In the Scheme dialect of Lisp, we name things with define. Typing

(define size 2)

causes the interpreter to associate the value 2 with the name size.8 Once the name size has been associated with the number 2, we can refer to the value 2 by name:

size
2

( 5 size)
10

Here are further examples of the use of define:

(define pi 3.14159)
(define radius 10)

(
pi ( radius radius))
314.159

(define circumference (
2 pi radius))

circumference
62.8318

Define is our language’s simplest means of abstraction, for it allows us to use simple names to refer to the results of compound operations, such as the circumference computed above. In general, computational objects may have very complex structures, and it would be extremely inconvenient to have to remember and repeat their details each time we want to use them. Indeed, complex programs are constructed by building, step by step, computational objects of increasing complexity. The interpreter makes this step-by-step program construction particularly convenient because name-object associations can be created incrementally in successive interactions. This feature encourages the incremental development and testing of programs and is largely responsible for the fact that a Lisp program usually consists of a large number of relatively simple procedures.

It should be clear that the possibility of associating values with symbols and later retrieving them means that the interpreter must maintain some sort of memory that keeps track of the name-object pairs. This memory is called the environment (more precisely the global environment, since we will see later that a computation may involve a number of different environments).9
За прямоту извиняю. Вот 1.1.2. Где блядь эта хуйня?
56 1191352
>>191325

>Извини за прямоту, но ты не очень умный.


Лол, я ждал этой фразы. У него на самом деле просто склад ума такой - мозг упирается и не хочет переваривать и запоминать новую информацию, если она ни на чем не основана и подается как есть. Я когда-то от K&R так же подгорал: это так, потому что мыскозали, а это мамбо-джамбо зависит от типа машины, а это частью языка не является, а является функцией волшебной и непостижимой "стандартной библиотеки", которая все сделает заебись, надо лишь взмахнуть волшебной палочкой три раза влево и один - вверх. Зато после краткого знакомства с асмом все сразу встало на свои места и книжка зашла без малейших проблем.
57 1191382
>>191352

>после краткого знакомства с асмом


Шо цэ такое?
59 1191386
>>191352

>если она ни на чем не основана


Ты о чем вообще? Чувак уже неделю не может понять, как работает define и условный оператор. Ему уже конкретный абзац дали - читает и не понимает. Налицо отсутствие абстрактного мышления. Тут продуктивнее будет заняться чем-то другим или начать, не знаю, с html, если так хочется вайти в айти.
60 1191387
>>191385
Не, такое говно мне точно ни к чему. The Little Schemer надеюсь заменит никчемный ассемблер.
61 1191388
>>191386
Няш, у меня 2дня в неделю свободно. На той неделе были первые два дня моего вкатывания, сегодня третий. Я не целую неделю за этим всем сидел. Литл шемер скачал и открыл, сейчас буду потихоньку его в переводчик копипастить.
62 1191389
>>191388
Да мне-то похуй, я просто излагаю мысли вслух.
63 1191390
>>191386
Ну вот и проверим. Не осилит TLS - тогда да, печально все.
64 1191399
>>191390
Согласен, хотя тут еще языковой барьер может сыграть роль.
65 1191400
Вот с языком у меня и хуево, сижу с переводчиком, копипастю текст учебника.
66 1191401
>>191400
тот самый ньюфаг
67 1191402
>>191400
Ну тут ничего не поделаешь, незнание английского в этой сфере практически эквивалентно безграмотности. 95% всей годной информации на нем, даже если она полувековой давности. Переводи и набирай критическую массу, пока не сформируется понимание языка. Только не читай тупо выхлоп переводчика, а переводи каждое слово отдельно, а предложения составляй сам. Если будут какие-то вопросы по значению терминов - пиши сюда, подскажем. По самому содержанию книги, думаю, вопросов не должно возникнуть, там все в форме вопрос/ответ.
68 1191403
>>191402
Хорошо, буду стараться.
69 1191404
>>191403
Можешь еще все слова, что переводишь, сразу с переводом копипастить в отдельный файл. Потом набросаешь програмку для интервальных повторений, чтобы все это надежно заколотить в башку.
аа.jpg37 Кб, 448x542
70 1191405
>>191404
Ну вот как раз словарь для себя и делаю в данный момент. Но инглиш у меня совсем пиздец. В школе было с 2 на 3 еле-еле, в технаре вообще за деньги мне оценки ставили и не учил ничего, а в институте был перезачет, т.к. в технаре слишком много часов его было, лол. Короче с матом и руганью прочитал 3 строчки учебника, пикилейтед мой словарик на данный момент. Да, я только сейчас вспомнил, что инту - в, а лайк - любить, но хуле делать.
А шо за программа для интервальных повторений?
71 1191406
>>191405
Все так начинали. Я сидел с бумажным словарем и переводил простыни текста в JRPG с PS1. В школе был немецкий.

>Да, я только сейчас вспомнил, что инту - в, а лайк - любить, но хуле делать.


Очень скоро ты начнешь вспоминать гораздо больше, если не забросишь. Можешь пропустить пока вступление, кроме секции Guidelines for the Reader, там ничего важного нет.

>А шо за программа для интервальных повторений?


Не программа, а методика. https://ru.wikipedia.org/wiki/Интервальные_повторения
Книжка, кстати, ее тоже активно использует.
72 1191408
А еще я думаю мысленно про себя всякие фразы проговаривать по английски, допустим человек что-то рассказывает мне, а я в голове английскими словами пытаюсь сам себе это сказать.
73 1191433
>>191408
Если твой мозг не может в многозадачность - лучше не стоит, лол. Иначе, тебя любой собеседник за аутиста считать будет.
74 1191443
>>191433
Ну понятно, что если будет тупня какая, то я не буду это практиковать.
75 1191528
>>191405

>А шо за программа для интервальных повторений?


Anki.

>за деньги мне оценки ставили


Так ты еще и быдло. ССЗБ. Зла тебе.
76 1191642
>>191528

>ССЗБ


Это что за хуйня?

>Так ты еще и быдло. Зла тебе.


Никакое не быдло, технарь закончил без троек и покупался только английский, все остальное своими умом и стараниями. Ну не любил я этот язык и смысла в нем никогда не видел, потому и не учил.
77 1192026
Посоветуйте нормальный переводчик, который будет адекватно произносить слова, которые я в него вбиваю. Нашел этот, но блядь он всю фразу целиком пиздеть не хочет. Яндекс произносит очень быстро.
https://myefe.ru/anglijskaya-transkriptsiya.html
78 1192060
Поясните за упражнение 1.11. Я пздц не понимаю че к чему(((
f(n)=n, если n<3 и f(n)=f(n-1)+f(n-2)+f(n-3), ежели n>=3
и сука рекурсивно и итеративно расписать эту парашу. Как??? Я посмотрел решение, записал. Ок работает, но я не понимаю как он считает. Поясните чтобы и тупомы стало ясно, если вас не затруднит
79 1192094
>>192060
Смотри видео лекции.
80 1192150
>>192026
Гуглопереводчик нормально произносит же.
81 1192161
>>192060
1. Смотрим на значение переданного аргумента n. Если он меньше трёх, возвращаем его.
2. Иначе, возвращаем f(n-1)+f(n-2)+f(n-3)
Блядь, не бывает таких тупых людей, ты, сука, просто меня троллишь
82 1192360
>>192150
Зато переводит, как говно ебаное
83 1192361
>>192161
Не, он не тролит, я тоже тупой.
тот самый ньюфаг, который начал читать книжку со слоником на обложке
84 1192508
>>192161
да это я понял, хоть и тупой. Просто как саму формулу то составить? Там получается идёт ....else(+ f(- n 1)) ( 2 (f(- n 2))) (3 (f(- n 3)))))
Почему там идёт умножение на два и на три? Как до такого додумать? Я понимаю само условие если/то, но как его записать не понимаю просто и в главе не объяснялось. Мне что, йоба математиком нужно стать для начала?
85 1192509
>>192508
(2(f(...))))
86 1192510
>>192094
да посмотрел на хекслете, но он там вообще сокращенно рассказывает и для него написать формулу это как само собой разумеющееся. пздц
Может посоветуете какие нибуль другие видеокурсы? У меня особо времени просто искать нет т.к сижу с компа только из библиотеки
87 1192753
>>192510
Займись выжиганием по дереву.
88 1192954
>>192508
по какой-то таинственной причине в русском переводе умножение на 2 и на 3 отсутствует. Так что смотри это задание в оригинале
89 1193037
>>192954
спасибо
90 1193038
>>192361
ну и как тебе книга со слоником? Тоже думаю ее начать иб туп...
91 1193044
Бля, весёлый тред. Пацаны, не сдавайтесь, отписывайте об успехах и задавайте вопросы
92 1193160
>>193044

>весёлый тред


Что правда - то правда. Поддержу мессадж этого поста.

мимо->>192753-хейтер
93 1193203
Что мне даст в итоге изучение сисп?
94 1193218
>>193203
На собеседованиях не обосрешься, в первую очередь. Научишься думать как программист. Сможешь писать свои решения задач, если их нету в гугле.
95 1193232
>>193218
ЭЭ изучив сисп меня смогут в джуниоры взять чтоль?
96 1193241
>>193232
Да, возможно даже сразу, на позицию миддла.
Только ты его не осилишь(не так быстро, по крайней мере, как ты хочешь)
97 1193254
>>193241
Миддла только со знанием сисп?Ты траль?Я все стажерские что вижу везде требования c++ html фрамворки mysql sql.Мы про один и тот же сисп сейчас?
98 1193295
>>193254
Серьезно.
Если осилишь СИЦП - всё остальное осилишь освоишь очень быстро. (пару вечеров)
99 1193344
Можно где-то купить бумажную английскую версию за адекватную цену(рублей 1000-1500), пусть и б\у? Самые дешевые от 3к в инторнете. Заебался уже на экране читать книги, хочется в руках подержать.
100 1193349
>>193295
Спасибо анончик пойду грызть сисп
101 1193358
>>193344
На озоне 1272, в читай-город также
102 1193429
>>193358
Мне нужно именно на английском, после русских переводов технической литературы всегда больно вправлять терминологию на место.
103 1193727
К ОП посту можно еще добавить книжку How to design programs, на тот случай, если SICP кажется слишком сложным.
Если же кажется слишком легким, то тогда читай Concepts, Techniques, and Models of Computer Programming.
104 1193802
>>193727
вроде хтдп вообще с сикп не пересекается
105 1193851
>>192508

> Мне что, йоба математиком нужно стать для начала?


Тебе для начала нужно научиться постить код на пастбины.
106 1194172
>>193727
Спасибо, что перевел нам абзац с teachyourselfcs, что бы мы без тебя делали, дебил.
racket-trap.png155 Кб, 332x623
107 1194261
https://www.youtube.com/watch?v=OZXslNVaCOQ
Это просто трап, повествующий о видеомонтаже на Racket.
108 1194264
>>194261

>видеомонтаже на Racket.


Шта?
109 1194803
Почему не сделать много задач попроще?
sibo01.png77 Кб, 300x300
110 1194926
>>194261
((((
(((((((
(((((((((
О_О
)))))))))
)))))))
))))))
)
111 1195012
>>194803
Смысл одно и то же по 10 раз повторять?
112 1195139
Хочу няшиться с Евой Лу Атор :(
113 1195521
>>189167
Няшную от дейтелов
114 1196050
>>189167
Clojure for the brave and true
115 1196133
начал читать книжку с зеленым слоником. и возникли непонятки.
Is it true that this is a list? (atom turkey or)
Правда ли, что это list ? (список)
Yes, because it is a collection of atoms enclosed by parentheses
Да, потому что это союз элементов, заключенный в скобки.
Ок, блядь, идем дальше.
Is it true that this is an S-expression? (x y z)
Это блядь s-элементы?
Yes, because it is a list
Да, потому что это список.
Идем блядь еще дальше.
Is it true that this is a list? (how are you doing so far)
Правда, что это список?
yes, because it is a collection of S-expressions enclosed by parentheses
Да, потому что это несколько с-элементов, заключенные в скобки
ТАК БЛЯДЬ В ЧЕМ ПРИНЦИПИАЛЬНОЕ ОТЛИЧИЕ list от s-expression???
116 1196149
>>196133
S-выражение - это текстовое представление списка.
117 1196153
>>196149
а list это не текстовое представление списка? и как их блядь отличить, в каком случае используем list, а в каком s-expression ?
118 1196161
>>196153
list - это по-английски список. Список - это список, байтики в памяти. '(1 2 3) - это S-выражение, представлюящее список с элементами 1, 2 и 3.
400px-MagrittePipe.jpg21 Кб, 400x310
119 1196162
>>196161
Пикча отклеилась
120 1196165
>>196161
не уверен, что понял, ну да ладно, может по ходу книги более разжевано будет
121 1196190
>>196133

>союз элементов


Лол.

>ТАК БЛЯДЬ В ЧЕМ ПРИНЦИПИАЛЬНОЕ ОТЛИЧИЕ list от s-expression???


В том, что s-expression - это либо атом, либо список. Третий пример как раз это и показывает. Пиздец ты аутист.

Алсо, в следующий раз попробуй читать определения в книжке и пользоваться гуглом (https://en.wikipedia.org/wiki/S-expression).
122 1196198
>>196190
это не я аутист, просто там хуй написано, что одно может быть другим. если по очереди перечисляются команды, то по логике они разные и чем-то друг от друга отличаются. там даже слова нет про то, что одно может быть другим.
123 1196219
Какой уровень математики нужен для SICP? Уже ведь в начале они требуют знать бином Ньютона, а в численных методах совсем уже интегралы свободно берут по теоремам каким-то. Как освоить нужную математику для этого?
124 1196223
>>196198

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


Скинь книжку. Ставлю анус, что ты пиздишь.

>если по очереди перечисляются команды, то по логике они разные и чем-то друг от друга отличаются


Чего блядь? Третий пример свой посмотри. Там черным по белому написано:

>(how are you doing so far)


>it is a collection of S-expressions enclosed by parentheses

125 1196225
>>196133

>Is it true that this is an S-expression? (x y z)


>Это блядь s-элементы?


Правда, что это S-выражение (единственное число)?
Да, правда. Это список (S-выражение), состоящий из трех атомов (S-выражений). S-выражение - это либо список, либо атом.

>ТАК БЛЯДЬ В ЧЕМ ПРИНЦИПИАЛЬНОЕ ОТЛИЧИЕ list от s-expression???


Термин "S-expression" описывает большое множество, в которое входят все списки и все атомы. Т.е. каждый список - это S-expression, но не каждое S-expression - это список ведь это может быть атом. Так понятнее?

>>196165

>не уверен, что понял, ну да ладно, может по ходу книги более разжевано будет


Да, будет. Буквально в нескольких последующих примерах.
126 1196232
>>196223
Ну блядь ссылку, с которой скачивал, успешно проебал. Но если найдешь - 18,19 и 20 страницы в помощь - нет там нихуя, там дебильные вопросы и дебильные ответы, матчасти полный ноль.
>>196225
Пойду посплю пару часов, а потом вернусь к твоему сообщению. Спасибо за помощь.
127 1196245
>>196219
не нужна математика
128 1196249
>>196219
Конкретные абстракции
129 1196254
>>196232

>Ну блядь ссылку, с которой скачивал, успешно проебал.


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

>>196219
Школьной (10-11 класс) достаточно.
130 1196270
Хотя ладно, из любопытства таки скачал ее (первая ссылка в гугле: 7chan.org/pr/src/The_Little_Schemer_4th_2.pdf - если кому еще интересно).

БЛЯДЬ, ЕБАНЫЙ В РОТ, ВЗРЫВ МОЗГА!

Да это же ебаные коаны! Так вот откуда вся эта движуха пошла, блин! А я и не в курсе был и думал, что code koans придумали тддшники - а вот хуй там, как всегда это еще дцать лет назад было у лисперов, лол. Охуенно.

>>196232
Ок, анончик, тогда я беру свои слова обратно - ты все правильно делаешь, так и надо, она на это и рассчитана - чтобы ты сам пытался разобраться в вопросах\примерах и походу спрашивал, обсуждал и гуглил. Это охуенная и модная у хипсторов, лол штука:

http://rubykoans.com
http://clojurekoans.com/
http://clojurescriptkoans.com/
https://github.com/gregmalcolm/python_koans
https://github.com/mrdavidlaing/javascript-koans
половина сайтов у меня забанены роскомпозором, пиздец просто
131 1196272
>>196232
Ну и да, на твоем втором скрине прямо написано:

>all atoms are S-expressions


>all lists are S-expressions

132 1196293
>>196219
Слушай, а в чем проблема? Если ты необучаемый - зачем вообще читаешь SICP?
Если перед тобой стоит задачу, которую ты раньше не решал, это не значит, что её невозможно решить. Берешь и изучаешь необходимую математику по мере прохождения книги. Интегралы с нуля можно освоить за пару часов.
133 1196306
>>196270

>Да это же ебаные коаны!


Не совсем, но подход похож, да. В конце такое же ощущение "просветления", ты "узреваешь", как устроен интерпретатор с точки зрения рекурсивного перемалывания списков, но не машинной реализации. Взаимодействие с машиной там нарочно сведено к абсолютному минимуму, чтобы читатель не отвлекался ни на что лишнее. Например,вся арифметика выводится всего из трех примитивов: прибавить единицу, отнять единицу и предиката =0?
134 1196335
>>189167
PLAI, TAPL.
Без названия.png81 Кб, 682x270
135 1196391
>>196225
Тоже решил прочитать эту книжку(The little Schemer), вроде как всё понял, пока не наткнулся на скринпик.
Question: What is the car of l where l is the argument (a b c)
Answer: a, because a is the first atom of this list
Мои вопросы:
Что понимается под car? абстрактная машина, где вместо car мог быть и house?
Что такое "l"? как я понял в Preface части, L - Лисп; S - Scheme, это так?
136 1196395
>>196391

> Что понимается под car?


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

>Что такое "l"? как я понял в Preface части, L - Лисп; S - Scheme, это так?


Да
137 1196405
>>196335
pfpl же
138 1196414
>>196391
car - название встроенной функции, которая делает сампонимаешьчто. Соответственно, "car of l" - результат применения этой функции к l, иными словами - самулавливаешьчто.

>Что такое "l"? как я понял в Preface части, L - Лисп; S - Scheme, это так?


Это замечания по поводу отличий в разных реализациях (L - относящиеся к common lisp, R - про scheme), смело можешь игнорировать.
139 1196418
>>196414

>car - название встроенной функции, которая делает сампонимаешьчто.


Нет, не понимал, пока не загуглил, что car - одна из встроенных функций в лиспе, которая разделяет список. И как я должен был это понять? Или это такой способ изложения информации, что я сам должен догадаться, что это такое? Алсо - данные примеры можно как-то писать в L или R диалекте? Или на все устно нужно отвечать?
140 1196424
>>196418

> И как я должен был это понять?


Может быть СТОИЛ БЛЯДЬ ПОЧИТАТЬ ДАЛЬШЕ ГДЕ НАПИСАНО ЧТО КАР ОТ
(ТВОЯ МАТЬ ШЛЮХА)
будет
ТВОЯ
и немножко подрубить мозг, чтобы из ответов вывести шо таки делает блядский кар?
141 1196425
>>196418

>И как я должен был это понять?


Ну наверное дочитать до конца раздела, там полностью примерами объясняется, как она работает.

>Или это такой способ изложения информации, что я сам должен догадаться, что это такое?


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

>Алсо - данные примеры можно как-то писать


https://repl.it/languages/scheme
https://racket-lang.org/
смотри начало треда
142 1196428
>>196424
Проиграл с поста. Но так-то с первого раза сразу действительно сложно врубиться, потому что непривычно - все же привыкли, что разжуют и в голову положат, а тут такая необычная хуйня, тупо теряешься, так что желательно чтобы кто-то за ручку ввел в процесс или все эти вступления прочитать, да.
143 1196440
>>196428

>так что желательно чтобы кто-то за ручку ввел в процесс


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

>или все эти вступления прочитать, да.


Не мешало бы. Там как раз это все и описано.
144 1196447
>>196405

>pfpl же


Интересно, не слышал о такой. Спасибо.

>>196418

>Нет, не понимал, пока не загуглил, что car - одна из встроенных функций в лиспе, которая разделяет список. И как я должен был это понять?


Обратить внимание, что слово "car" написано курсивом? Значит это никакая не "машина", а "a variable or the name of primitive operation". Где об этом написано (и о прочих notational conventions)? Правильно, в предисловии, которое ты скипнул.

>Алсо - данные примеры можно как-то писать в L или R диалекте? Или на все устно нужно отвечать?


Бери любой интерпретатор CL или Схемы (по идее даже Emacs Lisp хватит) и вперед. Только не забудь сперва определить пару примитивов. Догадываешься, где про них написано?
145 1196507
>>196270

>Скинь книжку. Ставлю анус, что ты пиздишь


>Ок, анончик, тогда я беру свои слова обратно


>Ставлю анус


>СТАВЛЮ АНУС


Пости фото жопной дырки с супом, чо как нипацан?
146 1196512
>>196447
Я видимо, скачал эту книгу в урезанной форме на gen.lib.rus.ec и там даже не было такой главы, как "The Ten Commandments". Как раз в этой главе и описывается про эти функции.
http://7chan.org/pr/src/The_Little_Schemer_4th_2.pdf -яя
147 1196513
>>196512
У меня 211 страниц, а сколько должно быть?
148 1196517
>>196513
Если ты читаешь эту http://7chan.org/pr/src/The_Little_Schemer_4th_2.pdf
Значит 211, она полная
А в той, которую я скачал было 203
149 1196613
>>196425

>>Алсо - данные примеры можно как-то писать


>https://repl.it/languages/scheme


>https://racket-lang.org/


А я бы предложил пойти по более хардкорному пути и взять Emacs + paredit + geiser/SLIME. Заодно и интсрумент крайне полезный можно освоить. Да и с кейбиндингами евоными в той же современной *NIX-консоли становится весьма удобно жить и во всем остальном софте, использующем libreadline. Ну или DrRacket, он тоже поддерживает Emacs-keybindings.
150 1196697
>>196507

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


>Скинь книжку. Ставлю анус, что ты пиздишь.


>all atoms are S-expressions


>all lists are S-expressions



хуй тебе, а не анус, противный
151 1196698
>>196613
Нахуй не нужно ньюфагу, отвлечется, заебется и бросит.
152 1196699
Алсо, встроенные имаксовые кейбиндинги используют только аутисты.
153 1196830
>>196699
Плюсую этого, все чоткие посаны юзают evil-mode/Spacemacs ну или ребиндят Ctrl на Caps Lock по хардкору
154 1196831
>>196830
Ну контрол на капсе вроде у всех, кто хоть немного пользуется компьютером, нет?
155 1196845
>>196830
А я давно привык и мне очень даже норм :3 Теперь если приходится работать в Vi - переключение режимов откровенно морозит. Ctrl, само собой, на Caps'е и циклическое переключение раскладок на ScrLk.
156 1196888
>>196831
А я люблю обмазываться не свежим говном и дрочить. Каждый день я хожу по земле с черным мешком для мусора и собераю в него все говно которое вижу. На два полных мешка целый день уходит. Зато, когда после тяжёлого дня я прихожу домой, иду в ванну, включаю горячую воду...ммм и сваливаю в нее свое сокровище. И дрочу, представляя, что меня поглотил единый организм говно. Мне вообще кажется, что какашки, умеют думать, у них есть свои семьи, города, чувства, не смывайте их в унитаз, лучше приютите у себя, говорите с ними, ласкайте их.... А вчера в ванной, мне преснился чудный сон, как будто я нырнул в море, и оно прератилось в говно, рыбы, водоросли, медузы, все из говна, даже небо, даже Аллах
157 1196901
>>196888
Смешная паста, но при чем тут она?
158 1197042
>>196901
при том, что ебанутые школьники заебали со своими скрытыми текстами
159 1197161
>>197042
Понятно, а мне-то ты зачем это пишешь?
160 1197162
>>197042

> Двачую

161 1197202
>>187852 (OP)
Полная программа по софтваре инжинирингу, основанная на htdp: https://www.edx.org/micromasters/software-development

Добавьте в шапку.
162 1197237
>>197202
Тогда у нас будет cs тред, а не конкретный тематический сикпотред.
163 1197239
>>197237
Он и так уже давным-давно не сикпотред. Его стоит переименовать в "Teach yourself CS using Scheme".
164 1197363
>>187852 (OP)
Почему не сделали курс на основе SICP для дошкольников?
165 1197379
>>197363
Вообще-то сделали - ну, правда не на основе SICP (слабо представляю, что бы это могло быть), но с использованием схемки (Racket).

Алсо, https://news.ycombinator.com/item?id=10111479
166 1197520
>>187871
Скачал. Читаю.
167 1197521
>>189077
Где их качать?
168 1197523
>>197521
На либгене есть все 3. Только смотри, чтобы непорезанные были.
169 1197527
Фрэшмен того самого CS в треде. В универе учат си, джаваскрипту и си++, разумеется вместо изучения паттернов, алгоритмов и развития умения решать проблемы, дрочим синтаксис этиз языков особенно с++. В связи с этим занимаюсь по СИЦПу, уже на конце второй главе. Какую книгу посоветуете после между Paradigms for AI (где common lisp) или Introduction to Alghorithms?
170 1197532
>>197239
тогда я выкачусь, если тред будет не только по сикпу и будете вдвоем тута сидеть
171 1197725
>>197527

> Фрэшмен того самого CS


Откуда капчуешь?

>Introduction to Alghorithms


Из двух скорее это (более общая), хотя по идее это справочник.
172 1197729
>>187852 (OP)
На CS и SICP в частности дрочат всякие бесполезные хуесосы. Посмотрите: весь самый мощный софт написан на системных языках. Криптолокеры, трояны, вирусы, бэкэнд анонимных сетей и прочие золотые проекты написаны на C, C++, Rust. Как функциональщина поможет петушкам обмениваться ключами через тор для реалиазции выкупа за зашифрованные файлы?
laugh-tom-cruise.jpg41 Кб, 600x400
173 1197817
>>197729

>Криптолокеры, трояны, вирусы

15083192327540.jpg53 Кб, 453x604
174 1197827
>>197729

>написано


>Rust

175 1197841
>>197729
Ниче что Rust — функциональный язык с low-level фичами?
176 1197844
>>197841
Rust - императивный язык, который наследовал множество ФП идиом.
177 1197930
>>197844
Это ты сейчас джаваскрип описал, а раст - это то, что >>197841-анон сказал. Но тебе ведь виднее, чем самим разработчикам раста, конечно.
178 1197971
>>197729
На сикп не надо дрочить, его надо прорешать и забыть.
"Дрочат" только бесполезные хуесосы, на что угодно, в т.ч. и на тобой описанное.
179 1198114
>>197930
Разработчики как раз не сильно это палят, чтобы не распугивать C и Ruby программистов.
180 1198576
(null <элемент>)
Эта функция возвращает Т, если <элемент> вычисляется в nil, иначе nil.
Например, дано:
(setq a 123)
(setq b "string")
(setq c nil)
тогда:
(null a) возвращает nil
(null b) возвращает nil
(null c) возвращает T
(null '()) возвращает T
Поясните про эту хуйню.
181 1198727
>>198576
А что непонятно-то?
Кстати, вроде как должно быть null?, с вопросительным знаком в конце.
182 1198811
>>198727
Если элемент вычисляется в нуль, возвращает Т. каким хуем нил не вычисляется в нил. а потом 123 и стринг вычисляются в нил?
183 1198866
>>198811
https://ideone.com/47IlwE
покормил тролля, притворяющегося клиническим дурачком
184 1199130
>>198866
По ходу я и есть клинический дурачок, что делать. Т.е. грубо говоря, функция "null" - определяет, ноль у него в аргументе или нет? Если ноль, то возвращает Т, если не в ноль, то nil?
185 1199269
>>199130

>Т.е. грубо говоря, функция "null" - определяет, ноль у него в аргументе или нет? Если ноль, то возвращает Т, если не в ноль, то nil?


Да, только не ноль, а nil.
аа - копия.jpg24 Кб, 583x343
186 1199274
>>199269

>не ноль, а nil


Может я правда дебил, но в чем разница?
187 1199296
>>199274
В том, что в Scheme это разные вещи: https://ideone.com/0H4VxY
> Может я правда дебил
Да нет, ты просто меня троллишь, а я ведусь, потому что мне на работе делать нечего.
188 1199364
>>199296
Cпасибо за разъяснение. Но я правда с трудом вникаю в эту хуйню. Хотя выше писали, что книжка с зеленым слоником специально так сделана, чтобы читатель голову ломал, может поэтому так и выходит.
189 1199503
>>199296
https://ideone.com/lPSTlu
Я попробую еще воспользоваться твоей добротой, ну а ты представь, как кормишь тролля. книжка по психологии "игры, в которые играют люди" или "люди, которые играют в игры" - одну из них я прочитал, там бывает такая хуйня, что оба прикидываются, (играют в игру), но обоих это устраивает
Так вот, попробовал сделать, как по твоей ссылке, ну чтобы ввел команду, а она ниже расписала, что эта функция обозначает - нихуя блядь не получилось. У меня есть сайт с расшифровкой функций, но там все как-то через жопу, а ты скинул и коротко написано и понятно.
190 1199683
>>199503
Ниже "расписала" не "команда" проигрываю с твоей терминологии, а лично я - это называется комментарий: https://ru.wikipedia.org/wiki/Комментарии_(программирование)
И да, в stalin 'nil : https://ideone.com/Eu9Dmk , внимательно смотри, какой диалект схемы выбираешь в ideone (ты ведь заметил, что их там три штуки?). stalin не рекомендую миллиард расстрелянных лично, выбирай guile или курочку
191 1199690
>>199683
Спасибо, добра тебе.
192 1200909
Сап лиспаны. Что в схеме есть годного для юнит-тестирования помимо rackunit?
193 1201228
Почему в MIT больше не изучают SICP

https://habr.com/post/282986/
194 1201237
>>201228

> 5 мая 2016


С разморозкой.
Кто, интересно, в выборах президента в США выиграет ммм?
195 1201240
>>201237

>С разморозкой.


Хуйле вы тогда тут обсуждаете?
196 1201427
>>201240
MIT не закон, я закон.
197 1201434
>>201240
Программирование.
198 1201438
>>200909
А ты под какой-то другой диалект что ли пишешь, почему ракетские батарейки исключаешь?
199 1201515
>>201228

>Почему в MIT больше не изучают SICP


Ложь в самом названии. Легко нагуглить, что прямо сейчас в mit преподаётся sicp
http://web.mit.edu/alexmv/6.037/
200 1201520
>>201515
Ну точнее не прямо сейчас, а в январе сего года. Там и календарь висит.
Но хабралюди и не такую наживку проглотить способны.
201 1201571
>>201520
Самое смешное, что там вроде в самой статье и идет опровержение ее названия. И тем не менее каждые эн недель возникает очередной неосилятор, который завалился на задачке про монетки и таким образом доказывает всем (на анонимной борде), что он на самом деле ого-го, это все остальные дураки, хуйней всякой занимаются.
202 1201663
>>201438
Мне интересен весь диапазон возможных решений :3
203 1201664
>>201571
Заёбнее задач про монеты только дрочьба с восемью ферзями во второй главе имхо.
204 1202026
>>201663
Ну тогда хуй знает, вряд ли тут кто-то пишет что-то такое, чтобы были нужны юнит-тесты, и при этом на на ракетке. Вот если бы ты про кложу спросил - тогда другое дело.
205 1202527
>>202026
Хорошо, а что есть в кложе для юнит-тестов?
206 1202785
>>202527
Из коробки - clojure.test для обычных тестов и интегрирующийся с ним clojure.test.check для генеративных. В clojure.test есть годная штука под названием "are", которая позволяет удобно писать тесты для одной функции: http://clojuredocs.org/clojure.test/are
Про генеративные тесты рассказывать долго, можешь сам почитать. Алсо, от себя рекомендую вот такую штуку чисто для удобства: https://pastebin.com/raw/KYW8X0nR

Для не таких как все есть midje - хитровыебанный dsl на макросах, позволяющий писать тесты в таком стиле:
(map inc [0 1 2]) => [1 2 3]
(f x y z) => pred?
- со стороны это выглядит как примеры в документации.

Есть еще пачка фреймворков в руби-стиле, со всеми этими it, should и т.п., но они ненужны.
207 1202796
О, очередной тред про сицп. Не хотел заходить, думал опять полон тред неосиляторов с "сицп не нужно", "математика не нужна", "устарело", а оказывается всё не так плохо. Вот мой сайтик с практически всеми доп.материалами по сицп. https://sicp.neocities.org/
350px-MoneyStoNefti.png122 Кб, 350x151
208 1202908
>>202785
Спасибо, сохронил!
Как дойду наконец до кложи, посмотрю.
209 1202909
>>202796
Я на Racket почти до конца дорешал, могу помочь с твоим разделом "Racket way".
210 1202929
>>202796
Половина ссылок 404, уноси свое говно. В треде все актуальные материалы есть есличо.
211 1205760
Всем спасибо
212 1205845
>>205760
Пожалуйста.
213 1206308
Изучение SICP на питоне - норм тема? Просто не хочется дрочиться с лиспом, времени у меня не так уж и много, а польза от него будет сомнительна.
214 1206380
>>206308
Да без разницы, как тебе удобно.
215 1206531
>>206308
Времени потратишь больше, но за ваши деньги - любой каприз.
216 1206635
>>206531

>Времени потратишь больше


Почему?
217 1207833
>>206635
тому що москаль
218 1207862
>>206635
Потому что схемка специально создана для объяснения концепций программирования, а в пайтоне ты по ходу дела будешь помимо предметной области еще и ебаться с языком. Впрочем, если ты пайтон уже знаешь, тогда никаких проблем нет (а если не знаешь, то быстрее сперва взять схемку, а потом выучить пайтон).
аа - копия.jpg73 Кб, 659x427
219 1208990
Мучаю книжку со слоником. Что за ебаная функция lat? Даже в гугле нихуя нет.
220 1209104
>>208990
Тебе ещё и гуглить стоило бы научиться. https://stackoverflow.com/a/35612889/1336774
221 1209124
>>208990
Протип: используй кавычки при поиске упоминаний функции. По

>"lat?" little schemer


ответ >>209104-анона действительно первой ссылкой идет.

Алсо, мне понадобилось пару минут, чтобы понять, что "lat" - это "List (of) AToms". Пиздец.
222 1210014
>>209104
Спасибо.
>>209124
Да, если с кавычками, то уже можно что-то найти.
224 1212979
>>208990
Ты буквы там читать не пробовал, лол?
Эту функцию тебе надо написать.

Вообще, это книжка такая.
Там так объясняют.
Тебе лучше сразу это понять, или дропнуть и пойти почитать про пхп на русском.
225 1212998
>>212979
Чувак просто троллит тупостью. Там буквально следующим пунктом, который по странному стечению обстоятельств не попал в выделение, предлагают написать (lat?)
226 1213182
>>212974
>>212979
Простите меня за то, что я тупой осел, что еще сказать.
>>212998
Я пытаюсь по порядку все делать, может поэтому так и выходит.
227 1213194
>>187852 (OP)
На обложке лямбда нарисована. Как она связана с программированием?
230 1213240
>>212998
>>212974
>>212979
Да ладно вам, аноны, все ж мы люди, тред для вкатывальщиков.
231 1213346
Объясните долбоёбу, как работает эта функция(1.2.6, The Fermat test):

(define (expmod base exp m)
(cond ((= exp 0) 1)
((even? exp)
(remainder (square (expmod base (/ exp 2) m))
m))
(else
(remainder (* base (expmod base (- exp 1) m))
m))))
232 1213353
>>213346
ну если ехр равно нулю, тогда 1.
234 1213392
>>213377
Вообще-то меня интересует не "что", а "как"; сам алгоритм выглядит неочевидным (для меня). Хотя по ссылке есть методы нахождения, сейчас читаю, может дойдет наконец.
235 1213417
>>213392
Так, ну x^0 = 1, это понятно.

Дальше, если x^n, где n - четное, то мы
1) считаем x^(n/2)
2) возводим его в квадрат
(x^(n/2))^2 = x^((n/2)×2) = x^n. Так ведь? То есть мы n уменьшили и рекурсивно считаем функцию для меньшего n. А базовый кейс - это n=0, до него мы рано или поздно дойдем и тогда возвратим 1.

Так, а если n - нечетное, то
1) считаем x^(n-1)
2) домножаем на x
x × x^(n-1) = x^n. И тут n тоже уменьшается с каждым шагом, так что рано или поздно мы дойдем до базового случая n = 0 и возвратим единицу.

Ну и в обоих случаях мы еще вызываем remainder от результата, потому что нам все нужно по модулю m.
236 1213431
>>213417
Вроде прояснилось. Спасибо.
237 1213703
Тупой осел, которого все считают троллем, снова с дебильным вопросом.
(or <выражение>...)
Эта функция возвращает логическое ИЛИ списка выражений. OR оценивает выражения слева направо до тех пор, пока не встретится выражение, вычисляемое не в nil. Если такое найдено, OR прекращает дальнейшую оценку и возвращает T. Если все выражения nil, OR возвращает nil.
Что это за Т ? то же, что и это #t, т.е. true истина?
238 1213726
>>213703
Да.
Читай английскую версию, в ней нет той массы типографских ошибок, которая есть в рюзском переводе.
239 1213727
>>213726
Спасибо, понял.
240 1213757
>>213726

> читать книжки на уебищном английском вместо божественного языка математики

1.gif7,2 Мб, 1280x720
241 1214409
Дошёл до конца четвёртой главы.

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


Чёт у меня пригорело немношк
242 1214448
>>213757

>> читать книжки на уебищном английском вместо божественного иврита

243 1214553
>>214448

>> читать книжки на уёбищном человечьем языке вместо непосредственного восприятия информации через нейроинтерфейс

244 1214590
>>213703
Алсо, or часто возвращает первое не-nil и не-false значение - их еще иногда называют "falsey" (false и nil) и "truthy" (все остальное). Типа "ложненькое" и "истинненькое", если по-русски, лол.

Например, в guile:

>> (or #nil #f 10)


> 10



В кложе:

>> (or nil false 42)


> 42



То есть ты его можешь использовать не только как чисто логическое "ИЛИ" из булевой логики, но и как оператор выбора первого не-nil значения:

> (or (get m "foo") (get m "bar") 42) на кложе


Достаем из словаря значение с ключом "foo". Если его нет, то пробуем достать значение с ключом "bar". Если и его нет, то возвращаем значение по умолчанию, 42.

Алсо, важно понять, что как только or встретит первое подходящее ("truthy") значение, все выражения справа от него от не вычисляет, а просто отбрасывает. То есть

>(or 1 (print "nope"))


ничего не напечатает. Но вообще, у тебя там про это задания как раз будут.

Алсо, попробуй реализовать if через and и or, чтобы точно понять, как оно все работает.
classic.jpg50 Кб, 445x372
245 1214591
246 1214593
>>187852 (OP)
Господа, а не существует ли в природе курса по sicp с возможность получить сертификат на выходе?
247 1214644
>>214593
Ты не про дипломы использующих его универов говоришь, так ведь?

На основе htdp есть mooc: https://www.edx.org/micromasters/software-development

На основе сикпа - не знаю, не слышал. Да и все материалы и так есть в открытом доступе, ну и это же вводный курс, так что не думаю, что прям есть какой-то сильный смысл в отдельном сертификате, хотя хз.
248 1214727
249 1214987
>>214727
Там разве дают сертификат?
250 1214996
Тупой осел опять с тупым вопросом.
Поясните про член. ну любите вы его трогать, гладить там, родственникам показывать

(member <выражение> <список>)
Эта функция просматривает <список> - встречается ли <выражение> и возвращает часть <списка>, начинающуюся с первого найденного <выражения>. Если в <списке> нет <выражения>, MEMBER возвращает nil.

Например:

(member 'c '(a b c d e))возвращает (C D E)

(member 'q '(a b c d e))возвращает nil

Вот читаю слоника.
What is the value of the
application (member? a lat) where a is meat and lat is (meat gravy)
вот по вышеописанной логике он должен возвратить meat gravy, т.к. он нашел meat и возвращает его и весь остальной список. А вот в слонике ответ такой
#t , because we have fo und that meat is a member of (meat gravy).

Изначальную расшифровку функции взял отсюда. http://aco.ifmo.ru/~nadinet/html/other/lsp_book/lisp.html# Или это опять ебаные сложности перевода на наш язык и пр.? Просто про возвращение #t там в принципе ничего не написано. Вроде логично, т.к. совпадение было, но блядь ни слова про это нет.
251 1214997
>>214996

>(member 'c '(a b c d e)) возвращает (C D E)



>(member 'q '(a b c d e)) возвращает nil



как-то через жопу скопировалось, там \t не было
252 1215129
>>214996
Ты перепутал member с member?. Будь внимательнее.
253 1215267
>>215129
Аа, т.е. если просто member, то возвращает список, а если member?, то #t\#f ?
254 1215291
255 1215293
>>215267
Всё, что с ? на конце - это предикат, функция, принимающая на вход, как правило, один параметр - объект, и возвращающая булевскую характеристику этого объекта. Например, odd? и even? для чётности/нечётности чисел. В сикпе про это пишут в самом начале, в главе 1.1.6.
256 1215321
>>215293

>функция, принимающая на вход, как правило, один параметр


Ну необязательно один, есть еще eq? и прочие. На всякий случай уточнил.
257 1215407
>>215291
>>215293
Спасибо за ответы. Вот блядь в слонике про ? нихуя не написано, все блядь так: вопрос - ответ, а ты ломай голову. Ну ничего, потихоньку вперед все-таки двигаюсь.
MoriheiUeshiba52.jpg107 Кб, 651x800
258 1215485
>>215407

>вопрос - ответ, а ты ломай голову


Дорогу осилит идущий, слоника осилит думающий!
259 1215512
>>215485
Ну 45 страниц из 211 осилил.
35972-001.jpg15 Кб, 700x546
260 1215531
>>215485
Двачую, братишка!
261 1216081
>>215512
На чём пишешь примеры?
262 1216489
>>216081
Ни на чем не пишу, в голове считаю. Если сильно большой, ручкой на бумаге.
263 1216752
>>216489
Ну нахуя же так изъёбываться?
Поставь Dr Racket (https://racket-lang.org).

Надо только функцию atom определять в начале файла, и всё.
Об этом в книжке написано.

Вот тебе несколько примеров из второй главы, даже с тестами:
https://pastebin.com/mygEwyDi

Просто скопипасти в новый файл racket (в верхнее окно редактора), и запусти.

Для SICP он тоже подходит, надо только поставить расширение.
Если интересно - гугли Dr Racket SICP.
264 1216802
>>216752
Так а смысл все это делать? Ладно, если тебе дают какое-то задание что-то там придумать. Но если вопрос, мол какое значение этой функции, наверно смысл-то самому все просчитать, чем скопипастить, прога дает тебе ответ и ты сравниваешь его с правильным? Или я чего-то может не понимаю?
265 1216810
>>216802
Именно так! Подобные задания надо решать самому.
266 1216836
>>216810
Ну хоть в чем-то я не осел и за тролля не приняли :)
267 1216839
>>216802
Я тебе и предлагаю делать самому.
Просто не на бумажке.

Это же просто мини-ide и интерпретатор для scheme.
Но, код писать придётся самому, лол.

А в пастебине - мой старый файл, просто для примера, чтобы сразу посмотреть, как оно работает.

Там, кстати, можно знак лямбды использовать вместо слова lambda (см. функцию atom в файле). Вставляется через меню Insert или комбинацией Ctrl+\
268 1216846
>>216839
Ну я, видать, еще до каких-то больших примеров не дошел, поэтому пока так. Но за инфу спасибо, буду иметь в виду.
269 1217101
Если я охуел уже с предисловия (сложнее Толкина читается), мне можно ни на что не надеяться?
270 1217238
>>217101
О какой книге разговор и кто такой толкин?
271 1217307
>>217101
Заодно и английский подтянешь (ты же про это?). Ну и вступление, типа, литературное, в самой-то книжке все уже по делу будет, так что разберешься.

>>216846
Если ты совсем нуфаг (да и не только), то тащем-та имеет смысл и простые примеры набирать@запускать, просто чтобы поиграться и поэкспериментировать. Так знания гораздо лучше в голове откладываются, а то иногда такое бывает, что прочитал, вроде все понял, а потом открыл редактор - и сразу пустота в голове, лол. другой анон
ZIYhh.png67 Кб, 701x516
272 1217439
>>216802
Все правильно делаешь, упражнения из TLS лучше всего решать в голове! Но, помимо собственно ответа, в голове или первое время на бумажке также неплохо представлять себе порядок вычислений. А тут drracket может помочь, там есть такая полезная штука, как Stepper. После того, как посчитаешь ответ, можешь вбить программу в drracket и проверить по шагам, правильно ли ты представлял себе порядок вычислений.
273 1217476
>>217439

> TLS


The Leoniy Slonyk.
274 1217481
>>217476
Или даже The Learny Slonyk.
276 1218362
аноны, упражнения из книги лучше делать на лиспе или на плюсах?
277 1218363
на схеме или плюсах*
278 1218395
>>218363
просто так больше опыта писать на юзабельном языке, но мейби будут какие-то задачи в книге которые на плюсах не сделать, а поскольку ноль практики писания кода на схеме то буду просто пропускать эти темы, анон, ответь!!
280 1218428
>>218363
На схеме. На плюсах ты их не сделаешь. Не натягивай ужа на ежа.

>>218401
Схоронил, ты няша :3
281 1218429
>>218395
Ты троллишь, что-ли, так бездарно?

Книжку читать не пробовал?
Там не нужна практика писания кода на схеме.
282 1218441
>>218429
нет, я просто до этого все упражнения на плюсах делал, дочитал до процедур в качестве аргументов, а на плюсах чтоб упражнения там поделать какие-то костыли надо юзать, вот и спрашиваю. Или ты считаешь что упражнения не надо из книги решать
283 1218444
>>218441
я хочу сказать что просто если я буду задачи делать на плюсах то потом задачи на схеме будет оверсложно делать из-за его синтаксиса, но я наверное не прав
284 1218541
>>218441

>какие-то костыли надо юзать


Ага, стандартную библиотеку.
285 1218612
>>218444
Плюсы для этого - весьма неподходящий язык.

Надо было сразу на схеме начинать.
Там постепенно всё усложняется, и практика достигается в процессе.
286 1218706
>>218444
Три года прогаю на работе и учебе только на плюсах. Проблем со слоником на схеме не возникло
image.png26 Кб, 693x392
287 1218976
аноны, походу я слепой, но почему прога зависает когда я компилирую это говно, прога должна выводить сумму квадратов числе в указанном диапазоне
288 1218985
>>218976
там ноль должен быть в 11 строке вместо единицы, но это не важно
289 1219096
>>218976
У тебя какая-то не имеющая никакого смысла шизофазия на пике. Разберись с синтаксисом для начала, это несложно и займет 0.5-2 часа.
290 1219131
Обязательно знать\учить язык lisp для чтения этой книги? Я прост другой учу яз
291 1219147
>>219131
Что ты там в лиспе учить собрался?

И вообще, тяжело учатся лишь первые языки из каждой ниши. Далее любой очередной, если не осваивается, то понимается с полпинка за вечер.
292 1219160
>>218976
Лол, я забыл в параметрах процедур указать а
sage 293 1219189
>>219131
Тебе полдюжины языков в любом случае придется выучить, если ты собираешься деньги этим делом зарабатывать. В книжке используется минималистичный язык, специально сделанный для обучения, так что "учить" там хуй да нихуя. Сложность не в языке, а в алгоритмах.
294 1219287
>>219189
>>219147
Спасибо господа
image.png160 Кб, 500x264
295 1219288
296 1219537
аноны, есть смысл читать sicp, если в шараге на 1 курсе уже проходили с++ и шарпы? или трата времени и лучше другие книги почитать
297 1219540
>>219537
Ты еблан что ли?
298 1219576
>>219540
А что, есть какие-то сомнения по поводу человека, пишущего с маленькой буквы?
299 1219580
>>219537
То что вы там проходили в своей шараге не имеет никакой связи с тем, что находится в этой книге.
300 1219621
Спрашиваю чисто из любопытства: в дальнейшем будет проще или это только в начал такой пиздец? Сейчас где-то на 100 странице, когда смотрю решения то все моменты отлично понимаю, но вот когда сам пытаюсь писать то что-то идёт не так.
301 1219623
>>219621
и это только в начале
302 1219624
>>219623
это я себя исправил
303 1219630
>>219621
Когда читаю книгу или решения то довольно легко, но когда хочу решить задачу сам то всегда какие-то траблы
304 1219806
>>219621
Дальше будет сложнее, первая глава - это вообще азы для разгона.

>>219630
У меня для тебя не очень хорошие новости: ты тупой
Пиши сюда свои траблы, поможем.
image.png48 Кб, 1716x319
305 1219807
Почему doesnt work, я скобку где-то пропустил? Процедура должна возвращать натуральное число.
306 1219820
>>219806
Тупых людей подавляющее большинство, поэтому это норма. Дохуя умным эта книга особой пользы не принесет.
307 1219821
>>219806
Чтобы иметь "какие-то траблы" при решении тех задачек совсем необязательно быть тупым, у любого average person обязательно будут траблы. И это норма.пнг, значит моск качается.
308 1219823
>>219807
Ну он же тебе написал: несвязанный ни с чем символ "remainder". Не знает он никакого remainder'а, определить видать надо.
309 1219824
>>219807
Да, это из-за того, что там используется кастрированная жс-версия схемки. Список доступных функций можешь посмотреть тут: https://www.biwascheme.org/doc/reference.html#numeric

tl;dr: (define remainder mod)
310 1219827
>>219806
Траблами я называю вот это: когда моё решение занимает в два раза больше чем нужно и когда это можно сделать намного проще. Просто я то понимаю как эти задачи делать, но делаю их совсем по-другому чем нужно и делаю много лишней работы, будь-то от книги мне никакой пользы.
311 1219829
>>219827
Но возможно так у всех (я не хочу быть тупым! ;( )
312 1219830
>>219807
Два чаю этому >>219824
Используй chicken или guile с ideone
Или поставь себе наконец на пекарню https://www.gnu.org/software/mit-scheme и не еби мозги
I-baka.jpg112 Кб, 489x695
313 1219831
>>219827
Это и не трабл даже, это нормально, через это проходят все. Это называется "обучение". Проанализируй своё и референсное решение, осознай причины, по которым твоё решение хуже референсного, двигайся к следующей задаче, неся с собой новый опыт.
314 1220154
>>219827
Анимехуй выше прав, это наоборот самый продуктивный вариант кстати. Если ты сразу пишешь тот же код, что в ответах - то ты уже все знаешь, нет смысла читать. Если вообще не знаешь как решить - мотивация падает, ну и в целом хуевенько. А когда ты нахуячил код, вроде работает, а потом смотришь и оказывается можно было гораздо проще и красивее сделать - это вот самое то, к тому же обычно приятно и интересно разбирать идиоматичное решение той же задачи.
315 1220267
>>219830

>chicken


>coq


чет странный у вас мирок
316 1220330
>>220267
Это для девочек.
Для чётки пацанов есть Racket.
317 1220556
>>193295

>пару вечеров все остальное


Ох уже эти фантазеры...
l3remu1cblsx.jpg513 Кб, 2658x2201
318 1222188
Вот совсем не понимаю зачем учить SICP
Серьёзно! Почему нельзя просто выучить html css и javascript с php да верстать себе сайты за 50 - 100k .

Конечно можно сказать что без математики и фундаментальных основ ты НЕ ИЛИТА И ВАБЩЕ МАКАКА кококо, но это тоже вопрос спорный. Моему другу матан понадобился только с 1-го курса универа про матрицу для графики и всё ! Если начинать с SICP новичку который не одного хелоу ворлда не написал он отобьёт себе всю мотивацию программировать и учится еще пока дойдёт до команд input/output.

Чисто моё имхо что учится надо с html и/или python потом css + js + php(по желанию), а уже после узнав азы развивать свои знания с помощью SICP`a и других подобных книжек.>>187852 (OP)
319 1222191
>>222188
Тебе начать стоит с русского.
320 1222236
>>222188
Формошлепство не имеет никакого отношения к программированию, которому учит SICP и другая схожая литература.
321 1222588
>>222188
Верстка сайтов обсуждается в /web, ты разделом немного ошибся.
322 1222887
>>222191
>>222236
>>222588
Бомбят потому что не умеют в веб.
323 1222896
>>222887
https://serverracket.com
Где твой б-г теперь?
sage 324 1223189
>>222887
В верстку я действительно не умею, например. Я ведь не дизайнер. Тут доска не для дизайнеров, дизайнеры в /web (или где-то еще). Так что в верстку я, например, не могу. Могу только хуяк-хуяк на реакте сделать.
325 1223239
>>202929
>>202929
Короче пидорас, я всё починил. Напоминаю, сборка материалов для sicp : sicp.neocities.org
326 1223421
>>223245 (Del)
Лиспобоярам не место рядом с немытыми жабаскриптерами.
327 1224810
>>223239

>я всё починил.


Молодец! :3
328 1226567
Нихуя не понимаю синтаксис языка.
Вот пишут:
The general form of a procedure definition is
(define (<name> <formal parameters>) <body>)
Всё понятно, когда показывают на простом примере:
(define (square x) ( x x))
Т.е. square - название, Х - аргумент, которым может быть число, а х
х - что нужно сделать. В итоге получается, что вызываем команду через её название и какое-то число, которое будет аргументом, и его возводят в квадрат. Ясно, идем дальше.

Задание 1.6:
Alyssa P. Hacker doesn’t see why if needs to be provided as a special form. ‘‘Why
can’t I just define it as an ordinary procedure in terms of cond?’’ she asks. Alyssa’s friend Eva Lu
Ator claims this can indeed be done, and she defines a new version of if:

(define (new-if predicate then-clause else-clause)
(cond (predicate then-clause)
(else else-clause)))


А тут что - чем является?
new-if - имя вроде как. А predicate then-clause else-clause что такое?
На этом месте застрял. Не могу понять, что эта штука вообще должна делать?
329 1226568
>>226567
Дополнение:
Eva demonstrates the program for Alyssa:
(new-if (= 2 3) 0 5)
5
(new-if (= 1 1) 0 5)
0
330 1226572
>>226567
Всё, отбой, я понял. Это просто места для целых 3 аргументов
331 1226659
>>226572
Держи в курсе.
332 1226791
>>226572
Да, имена-то могут быть любые (с дефисами, например), необязательно однобуквенные.
333 1227702
>>226567
Походу до конца книгу осиливают дочитать только 5% людей.
image.png199 Кб, 1003x417
334 1228248
Интересно, были те кто сделал эту задачу самостоятельно?
Лично я только посмотрев решение и комментарий как это работает разобрался. Я думал что там должны просто числа складываться и не мог врубиться, а в комментариях объяснили что эти замены числам нужны только чтобы вызывать функцию какое-то количество раз, а не складывать сами числа.
335 1228297
>>228248
Ну я до этого уже слышал про нумералы черча, так что считай считерил.
336 1228521
else в схемке — бесполезный синтаксический сахар, что противоречит идее лиспятины, и не нужен. Можно просто написать 1.
337 1228528
>>228521
Зачем писать 1 вместо else, если else будет намного понятнее? Просто, чтобы выебнуться?
338 1228731
>>228521

>синтаксический сахар


>не вводит никакого нового синтаксиса

339 1229103
Разве это не устаревшая херь? Мой знакомый пограмист говорит, что это старинная хуерга без задач
340 1229113
>>229103
Так и есть
какогохуя.png20 Кб, 940x185
341 1229877
Господа, почему число в квадрат не возводится? Читал книжку, сделал кучу заданий, потом надо было в задании написать программку. Выдавало ошибки, попробовал 2 элементарные строчки написать и не работает. где я тупой?
342 1229897
>>229877
В скобки вторую строку
343 1229903
>>192026
https://dictionary.cambridge.org/
Если ещё актуально.
344 1229911
>>229877
Скобки вокруг второй строки.
345 1229954
>>229103

>Мой знакомый пограмист говорит


))

>>229877

>Читал книжку


Ну походу плохо читал, бро. Ты во второй строчке возвращаешь функцию "square", потом выкидываешь ее и возвращаешь число "4".
346 1229973
По фану начал читать, имхо, лютая годнота. Эх, был бы такой курс в школе.
мимо ниначинающий
347 1229990
>>229973
Сколько уже прочитал?
348 1230005
((if (> b 0) + -) a b))
Правильно ли я трактую выражение? "Если Б меньше чем 0, то к нему добавляем -, т.е. Б - это модуль. И складываем А+Б."

Если правильно, откуда берется, то что мы суммируем А+Б, если перед ними не стоит "+" ?
349 1230015
>>230005
Пацаны, я понял, можете не отвечать
350 1230020
>>230005
Если больше бэ чем ноль, то сумма а и бэ, иначе - разность а и бэ.

Иф возвращает функцию, которую мы тут же применяем к аргументам a b.

>>230015
Бля, а я уже написал, можешь не читать
23.jpg98 Кб, 1200x900
351 1230038
>>230020
В любом случаи спасибо, что не равнодушен
352 1230044
>>230005
((if (> b 0) + -) a b))
-> (+ a b) или (- a b)
353 1230130
>>229990
Да немного. Полистал первую главу, посмотрел оглавление. Понравилось: грамотное разделение на разные виды абстракции, Schema как основной язык. Много нормальных примеров, вроде: проверки на простоту, численные методы решения уравнения, а не напишите функцию печатающию "Хуй" И далее, далее.
ИМХО, этот евангелие + курс по сям + алгоритмы + ООП == неплохой минимальный двухгодичный курс для старшей школы.
354 1230143
>>230130

>для старшей школы



Достаточно тонко.
355 1230159
>>230130

>этот евангелие + курс по сям + алгоритмы + ООП


Ну так-то да.

>>230143
Почему? Самое то для "матшкольника" (только пр, а не мат). Так-то многие поступают вместо 10-11 класса в колледжи при вузах, где по сути проходят программу первого-второго курса (частями).
356 1230167
>>230130
Эту книгу мало кто осилит, из моих бывших одноклассников мб ток 2 человека (класс 30 человек), и то навряд-ли. Даже в моей группе в шараге где ребята которые очень круто сдали экзамены по матану, мб человека 3 осилят.
357 1230192
>>230130

>Полистал первую главу, посмотрел оглавление.


Не надо торопиться с выводами, юноша.

Хотя, это с давних пор в России такое - каждый, кто видел голую женщину, считает себя гинекологом.
А сейчас так вообще достаточно в интернете посмотреть, и готово.

>старшей школы


Ну, хоть не для младшей, и то хорошо.
358 1230217
Аноны, у меня в Racket такая ошибка, чё делать? Ответы смотреть не хочу.
359 1230223
>>230217
Потому, что в racket нет nil.
Как ты вообще sicp решаешь без (require sicp)?

Можешь ещё вместо nil написать '()
Или сделай (define nil '())
360 1230224
image.png53 Кб, 497x806
361 1230230
>>230223
Спасибо, сделал процедуры в 2 раза меньше (2 раза вызывал процедуру check-chet/check-nechet, исправил), вместо nil добавил '() и получилась такая няша :3
362 1230245
>>230230

>chet


>nechet


>para


Не делай так больше, пожалуйста.

Алсо, -3, например - четное или нечетное?

Алсо, заметь, что твои "chet" & "nechet" практически идентичны. Сможешь заменить их обе одной функцией?
image.png60 Кб, 1115x844
363 1230264
>>230245
Я не стал особо запариваться просто и вышло некрасиво из-за этого.
364 1230311
>>230264

>-1 1 -1 1 ...



Открой для себя (abs n).
365 1230397
>>230264
Не надо сравнивать остатки по отдельности с нулём и единицей.
Надо сравнивать один остаток с другим.
image.png52 Кб, 612x859
366 1230403
>>230397
Так наверное лучше всего.
image.png59 Кб, 484x803
367 1230404
>>230403
Намного красивее чем то что было.
368 1230435
>>230404
Нахуя, спрашивается, ты определяешь чёт или нечет? Это же совершенно лишняя информация, и лишнее действие. И "пара" никакая при этом не нужна, просто 2 параметра.

У тебя есть первый параметр и остальные.
Берёшь первый и сравниваешь с ним каждый последующий из остальных. Чтобы чётность была такой же, и похуй, чётной или нечётной.

Короче, пробуй дальше.
Оптимальное решение раза в три короче, чем у тебя понаписано.
369 1230439
>>230264
Знаешь анекдот про математика?
Как физик кипятит чайник воды? 1) Поставить чайник под кран 2) набрать полный чайник воды 3) вскипятить
А если чайник уже наполовину наполнен?
1) Поставить чайник под кран 2) долить недостающие полчайника воды 3) вскипятит

Как математик кипятит чайник воды?
1) Поставить чайник под кран 2) набрать полный чайник воды 3) вскипятить
А если чайник уже наполовину наполнен?
1) Вылить воду 2) задача сведена к предыдущей.
370 1230441
>>230435

>раза в три короче,


Я не в тот скриншот посмотрел, это же старый.
Всё равно, можно короче раза в полтора.
image.png40 Кб, 587x682
371 1230460
>>230441
Сделал в полтора раза короче.
372 1230467
>>230439
Как анон, который сделал говнокод (я) кипятит чайник воды?
1) Поставить чайник под кран 2) набрать полный чайник воды 3) Вскипятить
А если чайник уже наполовину наполнен?
1) http://community.schemewiki.org/?SICP-Solutions
374 1230470
>>230460
Неплохо.

Но с проверкой чётности всё равно фигня.
Просто сравнивай остаток от деления a на 2 и b на 2. Т.е. abs не нужен вообще. Потому, что это будет либо 0, либо не 0.

И tepernormalno? можно назвать loop и определить внутри основной функции. И вопрос там ни к чему, это же не предикат.

Вместо 2-х вложенных if можно сделать cond.
image.png26 Кб, 490x361
375 1230476
>>230470
Чётко. Я просто в rem добавил abs, а в tepernormalno забыл убрать.
image.png26 Кб, 470x364
376 1230487
>>230476
Забыл cond.
377 1230488
>>230487
Орнул когда посмотрел на свой изначальный код.
image.png26 Кб, 566x312
378 1230492
Налажал с cond, тепреь точно всё.
379 1230499
>>230476
Вот так - хорошо.

Единственное замечание - во внутренней функции параметр g лучше назвать иначе, чтобы не вводило в заблуждение, и не приводило к потенциальным багам.
image.png313 Кб, 1562x907
380 1230501
Я извиняюсь за то что пишу всё не в одном посте, а делаю 5 постов. Я ещё хотел спросить: эта тема на lurkmore актуальна всё ещё актуальна или нет? Наверное стоило спрашивать в другом треде, но здесь есть аноны которые уже прочитали sicp и мб знают лучше других.
381 1230626
>>230501
Более чем актуальна.
382 1230627
>>230501
Ни в коем случае не актуальна.
383 1230628
>>230476
Только индентацию подправь еще, иф внутри луп уровнем правее ведь должен быть.
384 1230667
>>230501

Тебе там анон выше написал. Если ты в школе не осилил сикп + курс по сям + алгоритмы + ООП, то звать тебя никак и в профессии делать тебе нечего.
385 1230730
>>230667
Анон выше такого не писал, а тебе походу нужно кое-что потушить, анон.
386 1230755
>>230626
>>230627
Очень смешно. Лучше б помогли новичку, я не хочу становиться веб макакой.
>>230628
Я исправил >>230492
387 1230756
>>230755
Если ты не хочешь становиться макакой, то тебе надо научиться иметь своё мнение, а не полагаться на рандомных сосачеров, лол.
388 1230757
>>230756
А какое у вкатывальщика должно быть мнение? Я прочитал эту тему на луркморе и мне стало интересно что опытные аноны думают на счёт этого.
389 1230894
Я уже знаю про карринг и умею пользоваться map, filter и reduce в жаваскрипте.
Насколько мне нужна эта книга?
390 1230896
Идиот, блядь, с зеленым слоником опять с дебильным вопросом. Поясните про функцию else в гугле опять нихуя не нашел, в слоняре тоже нихуя нет.
391 1230929
>>230896
Про else в cond?

Это не функция, это просто псевдоним для true.
Т.е. нужно определить условие, которое выполняется всегда. Это - true, естественно.

И ты пишешь: (define else #t)
Или как там true в слонике обозначают, не помню, смотреть лень.

Или можешь написать (define else (= 1 1)), если хочешь.

В Racket, кстати, можно так не делать, там просто последнее выражение в cond (без условия) выполняется, если ничего не подошло.
392 1230931
>>230894
Тебе будет несколько легче начинать читать эту книгу.
А нужна ли она тебе - посмотри и сам реши.
аа.jpg23 Кб, 321x200
393 1230935
>>230929
Ну да, наверно про него. Ну вот смотри пикрилейтед. Выходит, что три последних строчки это, по сути, #t при любом раскладе? И, если я все правильно понял, увидел else, значит там буде истина, чтобы после него не было написано? А вообще, где бы это почитать, чтобы более подробно. Книжка со слоником, конечно, заставляет мозги работать, но блядь когда на протяжении 20 страниц эта else периодически попадается, а до сих пор расшифровки нет, то уже дебилизмом попахивает.
394 1230974
>>230935

>Выходит, что три последних строчки это, по сути, #t при любом раскладе?


Нет.
Не при любом.
Условия рассматриваются последовательно.
Если никакое другое не подошло, то рассматривается последнее, и оно всегда истинно.

>где бы это почитать, чтобы более подробно


Я не помню, где я об этом читал.
Гуглить лень.

Но, ты же можешь рассуждать логически?
условия:
если a=1, то 111
если a=2, то 222
иначе 888

Если ты заменишь иначе на "если истина", то и получишь желаемое поведение.

И ещё раз - условия разбираются последовательно.
При совпадении условия разбор прекращается.
395 1230977
>>230974
Спасибо. У меня вордовский документ под функции лиспа, сейчас попробую своими словами описать то, что ты рассказал и прийти к какой-то общей картине.
396 1231029
>>230977
Специально посмотрел сейчас в слонике.
Там нет определения else.
Т.е. они дают это как ключевое слово, типа if или cond.

Но, в некоторых диалектах Scheme оно не определено, и можно его определить так, как я написал. А можно и не делать этого, и просто писать #t.

В Racket else есть, в SICP - тоже.

Вот что пишут в SICP про это (стр. 45):

Else is a special symbol that can be used in place of the p in the final clause of a cond. This causes the cond to return as its value the value of the corresponding e whenever all previous clauses have been bypassed. In fact, any expression that always evaluates to a true value could be used as the p here.
397 1231034
>>231029
Спасибо, няша, гляну тогда сикп.
398 1231040
>>230755

>Я исправил


Нет, cond у тебя там тоже неправильно индентирован. Редактор разве за тебя этого не делает? Скобки же для того и нужны, что отступы по ним расставляются строго автоматически.
399 1231042
>>230501
Многабукафнисасилил, но поперек пробежал глазами - вроде все правильно, читай сикп, учи джаву и пайтон, потом по вкусу можешь добавлять остальное.
400 1231058
>>231034
Могу ещё тебе посоветовать не зацикливаться на таких вещах.
Т.е. просто принимай это как данность.

Else - значит else.
Понимаешь, как работает? Вот и хорошо. Как оно устроено - поймёшь потом, если будет нужно.

Иначе можно сразу же упереться в тупик, и там и остаться.

Как сказал один умный человек - математику невозможно понять, но к ней можно привыкнуть.
И это не только с математикой так.
401 1231062
>>231058
Так вот я и не понимал, Как она работает, в слоняре ебаном ни слова не было. Сейчас окультурю все это дело, да дальше пойду.
402 1231140
>>231040
Я понял о чём ты, исправил.
403 1233268
Я не хочу смотреть ответ к этой задаче, поэтому просто задам 2 вопроса: там действительно должна получиться точно такая последовательность: ( () (3) (2) (2 3) (1) (1 3) (1 2) (1 2 3))? И я действительно должен создать метод который делает какие-то операции над объектом, которого не существует, ведь rest в итоге станет nil, а (car rest (то есть (car nil) (как же заебали эти скобочки сука))) вызовет ошибку. Так то я создать метод, который возвращает множество подмножеств я смогу, но раз нужно создать метод как там сказано...
404 1233307
>>233268

>там действительно должна получиться точно такая последовательность


Ну, с точностью до перестановки.

>ведь rest в итоге станет nil


Ну, вот чему равно множество подмножеств пустого множества? У тебя на картинке есть ответ. rest - это именно множество подмножеств. Иными словами, у тебя rest - это результат (subsets ...). subsets при каких-нибудь аргументах возвращает nil? Или нет?
image.png34 Кб, 490x813
405 1233317
>>233307
Сори, я помечу-то забыл про предикат null? в процедуре map. Просто вот что происходит (картинка), когда я в качестве аргумента даю (list 1 2 3) и делаю процедуру, которая просто возвращает свой аргумент. Просто в map в качестве аргумента всегда дается пустое множество, потому что все элементы листа просто "проcdrиваются" до nil и какая процедура должна быть, которая из пустого множества делает множество с числом, я не имею ни малейшего понятия. Единственная зацепка у меня только то, что число возвращаемых процедурой пустых множеств равно 2 в степени количества элементов листа, и от этого надо плясать.
406 1233319
>>233317
Фак, в качестве элементов используемых в функции в map можно использовать s. Теперь что-то придумаю.
407 1233730
>>233317

> Просто в map в качестве аргумента всегда дается пустое множество,


Ну так потому что subsets рекурсивная, а ты просто возвращаешь аргумент в своей лямбде. В итоге рекурсия доходит до базового кейса, где возвращается (list '()). Ну ты их аппендишь все и возвращаешь - вот и получается '(() () () ...).

Тебе надо рассуждать, как в доказательствах по индукции. Вот допустим, что у тебя уже есть множество всех подмножеств для (1 2 3 ...). Теперь тебе надо найти множество всех подмножеств для (0 1 2 3 ...). То есть один элемент новый всего добавился. Как ты это сделаешь? Попробуй сперва просто словами описать конкретно для этого случая. Можешь даже на ... пока забить и просто руками выписать сперва все подмножества (1 2 3), а потом - все подмножества (0 1 2 3). И сравнить.
408 1233753
>>233730
Я не стал читать что ты написал во втором абзаце, потому что хочу сам сделать. Я просто не могу понять как оно работает. Когда я расписываю весь процесс, то в итоге возвращается просто пустое множество (картинка 1), и это логично, потому что в map items всегда nil. Я что-то упускаю, ведь сама процедура действительно возвращает множество подмножеств, значит в map items не всегда nil, но я не пойму почему. И я кстати заметил, что то что возвращает моя процедура весьма похоже на то что я должен получить, но я энивей ничего не смогу сделать не поняв как работает метод.
409 1233755
>>233753
Я не хочу смотреть ответ, потому что я почти все задачи сделал сам, а когда я смотрел ответ и оказывалось что я просто забыл поставить скобки и из-за этого программа неправильно работала, то я все-равно чувствовал что я не справился с упражнением.
410 1233873
>>233753
Лол, можешь прочитать второй абзац, там нет ответа.
аа.jpg117 Кб, 699x604
411 1234903
Поясните, что за хуйня здесь происходит. У первой галочки спрашивает, мол эту ли линию разбирать. А почему нет? Ну ок, допустим потому, что нет значения на случай того, когда список окажется нулевым. Но блядь остальные две галочки что за еб твою мать? Каким образом l стало уменьшаться?
412 1234920
>>234903

> Каким образом l стало уменьшаться?


(cdr l) на каждом шаге, пока не станет пусто.

Чувак, эта книжка - про рекурсию.
И, такое ощущение, что именно этого ты (пока) и не понимаешь.

Алсо - ещё раз советую тебе не дрочить это в уме, а либо писать на бумажке по шагам, либо поставить Racket и начать программировать.
аа.jpg19 Кб, 316x158
413 1234924
>>234920
Я вообще ничего не понял. А с чего ты взял, что (cdr l) будет уменьшаться и схуяле оно стремится к тому, чтобы стало пусто? Вот мы по порядку шли, дошли до строки, отмеченной красным. Проверили, нулевой ли список l, оказалось, что нет. Переходим к следующей строчке, вычиляем там все, что можно, сначала самую правую скобку, потом среднюю, значение прибавляем к результату последней строки в будущем. Дальше вычисляем последнюю строку, ее значение прибавляем ко значению предпоследней. То-ли я долбоеб, то ли умственно отсталый, но я вижу, что делать нужно так. Откуда ты взял, что нужно так делать, вообще вдуплить не могу. Значение всех функций знаю, что какая делает, а толку блядь нет.
414 1234931
>>234924
Функция firsts принимает на вход список.
И у этого списка на каждом шаге обрезается голова: (firsts (cdr l))

Вернись назад, и разбери самый простейший пример из этой книги. Ты же не понял ничего.

На самом деле разбери, а не сделай вид.
Распиши на бумажке каждый шаг выполнения, как будто ты интерпретатор.
415 1234939
>>234931

> Распиши на бумажке каждый шаг выполнения, как будто ты интерпретатор.


Всегда проигрывал с того факта, что для того, чтобы стать успешным погроммистом, нужно балансировать в опасной близости от шизы
416 1234940
>>234931
Алсо, ты не видишь чтоли, он опять тупостью троллит, делает вид, что не знает, как работает cond.
417 1234943
>>234903

>А почему нет?


>(null? l), where l is ((a b) (c d) (e f))


(null? l) проверяет, пуст ли список l. В твоем случае l - это ((a b) (c d) (e f)).

((a b) (c d) (e f)) - это пустой список или непустой?

>Каким образом l стало уменьшаться?


(cdr l) возвращает хвост списка l. То есть список без первого элемента. Угадай, что получится, если из списка (1 2 3 4 5) убрать его первый элемент. А из списка ((a b) (c d) (e f))?

>А с чего ты взял, что (cdr l) будет уменьшаться и схуяле оно стремится к тому, чтобы стало пусто?


Хвост списка меньше самого списка. Если из списка выкинуть один элемент, то его длина уменьшится (на единицу). Как думаешь, что произойдет, если из списка (1 2 3) выкинуть первый элемент? А из списка (2 3)? А из списка (3)?

>Значение всех функций знаю, что какая делает, а толку блядь нет.


Потому что ты не пробуешь это все в repl и даже не выписываешь на бумажке значения каждой функции. Вот попробуй расписать, как выполняется выражение (+ (/ 6 3) 2).
(+ (/ 6 3) 2)
(+ 2 2)
4


А теперь попробуй точно так же расписать (cons (car (car l)) (frists (cdr l)))... Ну, вот то, что на картинке.

>>234940
Да вроде вообще не в cond у чувака затык.
418 1234945
>>234931
Вот да, двачую этого.
419 1234948
Кстати, я тут подумал: а не хотите конфу? Только не пидорскую, а нормальную, анонимную, через джаббер\ирц бота, никакого неймфажества. Заодно и интерпретатор схемы можно будет прикрутить. Just an idea.
420 1234951
>>234924
Перестань ебаться в глаза и увидь, что функция firsts вызывает функцию firsts с аргументом (cdr l) САМУ СЕБЯ РЕКУРСИВНО БЛЯДЬ ПОНИМАЕШЬ ТЫ СУКИН СЫН? РЕ-КУР-СИВ-НО
421 1234953
>>234948
Хочу. Можно будет там всем двачем объяснять тупотроллю примеры из зелёного слоника в риалтайме.
422 1234958
>>234953
Я понимаю твой сарказм да?, но писать примеры кода (да и вообще простыни) и вправду гораздо удобнее в вашем любимом текстовом редакторе все мы знаем, в каком, так что... мне кажется, идея не лишена практического смысла. Да и кросс-постинг в тред (и уведомления из треда) настроить не проблема.
423 1234959
>>234948
не хочу
424 1234963
Парни, спасибо за разъяснения, сейчас буду все это осмысливать.
425 1234965
>>234958

> да?


На самом деле нет. Почему, когда я говорю всерьёз, у меня вечно детектят сарказм? Я чо, слишком много на двачах сижу?
426 1234966
427 1234967
>>234965

>Я чо, слишком много на двачах сижу?


Нет. На самом деле да.
428 1234970
>>234966
Я правда все время думал, что возвращает уже конечный результат. А, судя по тому, как меня хуесосят, это совсем не так. Ну начал листать слоняру с самого начала, лол, сам уже как интерпретатор. Чтобы понять, как работает интерпретатор, нужно самому стать интерпретатором, лол.
429 1234976
>>234963
Ты вообще раньше программировал на чём-то?

Эта книга именно о рекурсии, а не о программировании вообще.
Это сложная тема для полного ньюфага, и ты именно это и демонстрируешь тут.
Может быть, начать с чего-то попроще?

Попробуй, вот это посмотри:
http://www.realmofracket.com

Скачать книгу:
https://the-eye.eu/public/Books/IT Various/Realm of Racket.pdf

Это от автора Land Of Lisp, если что.
https://www.youtube.com/watch?v=HM1Zb3xmvMc
аа.jpg156 Кб, 646x502
430 1234981
>>234976
Я нихуя раньше не делал. Попытался вкатиться в сикп - хуй на рыло, не пошло, дразнили тут троллем. Сказали, что нужно книжку зеленого слоника осилить, который вообще для полнейших даунов, тогда сикп нормально пойдет, вот зеленого слоника и пытаюсь дрючить. В принципе действие команд я понимаю, все их записал в вордовском документе - пикрилейтед, чтобы не быть голословным. Но сейчас по ходу заминка по самой этой рекурсии, когда скачем вверх-вниз, выполняя команды. Я че-то этот момент как-то проебал и пытался решить всю задачу целиком. Дошел до 60стр слоняры и вот тут-то оказалось, что обосрался. Сейчас начал сначала листать, долистал до 30 страницы, пока разборов разбора рекурсии нет, так что не сильно много мне придется по второму кругу проходить. Ну сейчас попробую разобраться, если ничего не выйдет, тогда буду по твоим ссылкам смотреть.
431 1234984
>>234976
Ну так можно бесконечно по книжкам прыгать, и так ни одной не закончить, лол. Чувак уже больше четверти книжки так-то прошел, как-то стремно было бы сейчас бросать. Алсо, книжка именно про основы алгоритмов, не только про рекурсию тащем-то (просто с ней все примеры). Правда если чувак и вправду не расписывал ничего, не писал и не игрался с кодом, как ему говорили, а просто глазами пробежал, тогда это не дело конечно. Но все равно, можно же взять и сейчас разобрать детально пару уже пройденных примеров, их там не так много к тому же.
432 1234986
>>234984
Я ручкой писал на бумаге эти примеры. Но блядь, я не прыгал вверх-вниз по строчкам, а тупо шел вниз, подставляя значение, выполняя команды. А оказалось, что эта ебаная рекурсия не так работает. Вот сейчас буду разбираться.
433 1234991
>>234970

>Чтобы понять, как работает интерпретатор, нужно самому стать интерпретатором


На самом деле это так и есть, по-другому никак.

>>234981
Так ты вот лучше вместо ворда прямо в схеме это все и пиши. Там же есть комментарии. То есть например для car ты можешь написать что-то такое:

;; car - возвращает первый элемент списка
(car '(1 2 3)) ;=> 1
(car '((1 2) (3 4)) ;=> (3 4), а не 3!!!

И так далее. И сможешь прямо сразу эти все примеры выполнять и проверять, что все понимаешь правильно. Если прям не хочешь себе скачивать drRacket - можешь онлайн все это делать: https://repl.it/languages/scheme
434 1234994
>>234986
Ну вот опять же, в том же drRacket есть дебаггер, который тебе прям по шагам покажет, как выполняется выражение. То есть ты можешь прикинуть в голове\на листочке, а потом сравнить.

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

(define (sum lst) (+ (car lst) (sum (cdr lst))))

И заодно исправь ошибку в ней ;)
435 1234999
>>234994
Правильно писать list, ты про это? :)
436 1235004
>>234999
Нет.
437 1235008
>>235004
У меня нет значения sum. Ладно, няша, давай я пока с интерпретатором разберусь, посредством зеленого слоника, потом это попробую. А то и так навалилось всего и сразу. Головой понимаю, что там списки урезаются, потом плюсуются и идут левее, но давай пока отложим.
438 1235015
>>235008

>У меня нет значения sum.


Так это имя функции, которое я тебе предлагаю определить.

А, понял! Ты ж сокращенной формы не видел, лол. Это то же самое, что (define sum (lambda (lst) ...))

>давай пока отложим.


Ок.
439 1235020
Короче на 31 странице начинается разбор работы интерпретатора. Ладно, сейчас спать пойду, завтра со свежими мозгами буду разбираться. Всем еще раз спасибо.
add1.png212 Кб, 1766x1318
440 1235028
>>234981
Важно понять, что есть глубокая связь между рекурсией и списком в лиспе.
Список - это и есть рекурсия.
А рекурсия - это список (который в лиспе, а не вообще).
Т.е. список - рекурсивная структура данных.

Например, тебе нужно превратить список чисел в список чисел, каждое из которых на 1 больше исходного.
Т.е. '(1 2 3) превратить в '(2 3 4).

(define (add1 lst)
....(cond ((null? lst) '())
........(else (cons (+ 1 (car lst)) (add1 (cdr lst))))))

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

Что такое список '(1 2 3) на самом деле:
(cons 1 (cons 2 (cons 3 '())))

Т..е. чтобы вычислить (создать) список надо последовательно углубиться в него до самого конца, и затем собрать результат в обратном порядке (в смысле - конец списка будет вычислен первым).

А вот что делает функция add1:
(cons (+ 1 1) (cons (+ 1 2) (cons (+ 1 3) '())))

Попробуй, разбери этот пример досконально, чтобы вообще не осталось недопонимания.
add1.png212 Кб, 1766x1318
440 1235028
>>234981
Важно понять, что есть глубокая связь между рекурсией и списком в лиспе.
Список - это и есть рекурсия.
А рекурсия - это список (который в лиспе, а не вообще).
Т.е. список - рекурсивная структура данных.

Например, тебе нужно превратить список чисел в список чисел, каждое из которых на 1 больше исходного.
Т.е. '(1 2 3) превратить в '(2 3 4).

(define (add1 lst)
....(cond ((null? lst) '())
........(else (cons (+ 1 (car lst)) (add1 (cdr lst))))))

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

Что такое список '(1 2 3) на самом деле:
(cons 1 (cons 2 (cons 3 '())))

Т..е. чтобы вычислить (создать) список надо последовательно углубиться в него до самого конца, и затем собрать результат в обратном порядке (в смысле - конец списка будет вычислен первым).

А вот что делает функция add1:
(cons (+ 1 1) (cons (+ 1 2) (cons (+ 1 3) '())))

Попробуй, разбери этот пример досконально, чтобы вообще не осталось недопонимания.
441 1235034
>>235028

>Список - это и есть рекурсия.


>А рекурсия - это список


Анон, определи мне N, пожалуйста.
442 1235047
>>235034

(define (n x)
....(cond ((= 0 x) 0)
........(else (+ 1 (n (- x 1))))))
443 1235070
>>235047
Какое-то РЕКУРСИВНОЕ определение получается;););)
444 1235074
>>235020
>>235070
Да, это хороший пример.

Если разложить, то получится, для (n 3):
(+ 1 (+ 1 (+ 1 0)))

Что весьма напоминает список '(1 1 1) по структуре.
Изменилась функция (+ вместо cons), изменился терминатор (0 вместо пустого списка), но идея та же самая.

Т.е. снова нужно дойти до конца (до терминатора), и собрать результат в обратном порядке.

Есть хорошая метафора для рекурсии:

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

(Это из книги How To Think About Algorithms)
445 1235104
>>235074

>Что весьма напоминает список '(1 1 1) по структуре.


Списки и натуральные числа - это один и тот же объект, шутка как бы про это была
446 1235151
Запудрил мозги со своим сикпом, челик бы уже давно мог ченить полезное в быту сделать на пайтоне
аа.jpg84 Кб, 657x244
447 1235197
Вчерашний ньюфаг возвращается. Начал разбираться с интерпретатором, собственно пикрилейтед. Все правильно? Тут прикололся, что по ходу всего треда, сколько раз кого упрекали, что он тролль и троллит тупостью, это всегда был я один, лол. Но ничего, плавно двигаемся вперед.
448 1235331
>>235197
Ты какую-то дичь пишешь.
Если всё это троллинг, то очень изобретательный.

Если ты не хочешь, как все нормальные люди, взять питон или даже javascript и научиться программировать, то возьми SICP.

И прочти начало первой главы, где описаны основы (до пункта 1.2.2).
Оно не сложное, весь пиздец там потом начинается.

И после этого - вернись к ебучему слонику, если он тебе так запал в душу.

И поставь уже, блядь, Racket.
И выполни там вот эту функцию, например: >>235028
И вообще, почитай, что тут тебе вчера понаписали, это познавательно.
Рекомендую сохранить.

Пока не поставишь Racket (с пруфами) - комментировать больше не буду.

И да, все эти вещи точно так же можно делать на джаваскрипте.
Есть даже мнение, что JS - это схема с сишным синтаксисом, лол.
А ещё на JS можно потом найти работу.
449 1235381
>>235331

>Есть даже мнение, что JS - это схема с сишным синтаксисом, лол.


Ещё есть вполне обоснованное мнение, что рынок труда в области жабаскрипт-макакинга перегрет.
450 1235390
>>235381
Но, он, хотя-бы, есть.
В отличие от лиспа.

>>235197
Могу ещё добавить, что лисп (в наше время) - не для обучения программированию.
А для того, чтобы тот, кто уже как-то умеет программировать, стал уметь это лучше.
В качестве первого языка - очень сомнительный выбор в 2018-м.
451 1235431
>>201571
Я вот сейчас завалился. Пиздец. Но я её сделаю, это дело чести блядь!
452 1235438
Дропнул на 2.40-50 задании, там где язык изображений, дико впадлу возвращаться к этой книге, это норма?
453 1235449
>>235438
Да.
Я серьёзно.

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

Алсо, знаю пример, когда взрослый и успешный дядя, уехавший на тракторе, работающий по профилю (хаскель-хуяскель etc) и имеющий хорошую математическую подготовку, решал этот ваш сикп около года (весь).

Это серьёзный труд, и нужно иметь серьёзные причины для этого.
454 1235468
>>235449
А нахуя всем ньюфагам тогда его советуют, если готовый спец целый год ебался, ньюфагу минимум 2, если не 3 потребуется.
455 1235485
>>235468
Ну, он целый год ебался в свободное от работы и отдыха время.

А ньюфагам советуют тролли, очевидно же.

Нормально - это взять питон.
Выучить основы.
Потом - взять книжку по алгоритмам, их именно для питона дохуя и больше + онлайн ресурсы, типа http://interactivepython.org/runestone/static/pythonds/index.html

Потом (или параллельно) - ООП, которое в питоне тоже нормально и понятно сделано.
И т.д. и т.п.

А потом, если захочется странного - рекурсию задрочить как следует, Y-комбинатор, и прочее, то вот тогда уже взять слоника, например. Или, даже сикп.
456 1235494
>>235485

>А потом, если захочется странного - рекурсию задрочить как следует, Y-комбинатор, и прочее, то вот тогда уже взять слоника, например. Или, даже сикп.


Т.е. даже олдфагам совсем не обязательно? А вы тогда зачем тут собрались? Просто "странного" захотелось?
457 1235499
>>235494
Олдфагам желательно.
До определённой степени.
Это всё реально делает тебя более годным программистом.
аа.jpg73 Кб, 606x736
458 1235509
>>235331
Добрался до компа. Держи, няша.
с сумасшедшим поселили.mp4972 Кб, mp4,
1280x720, 0:05
459 1235510
Че-то криво вырезалось. Ну вот на всякий случай мр4 с того пика, лол.
460 1235513
>>235509
Ну вот, другое дело.
Продолжай в том же духе.

Вот это вот перечитай: >>216752
И вообще избранные места из треда.
461 1235519
>>235331
Сикп он уже пробовал читать, не зашло, поэтому читает слоника в качестве подготовительного курса. Если ему сейчас начать с жс разбираться, он просто на месте сразу умрет, потому что там пиздец сколько всего ньюфагу надо в голове держать. Коммент про работу вообще не в тему - по такой логике надо запретить детям в школе паскаль изучать, ведь можно изучать ЭЙЧТИМЭЛЬ и СИЭСЭС И ПОТОМ НАЙТИ РАБОТУ!!11 Со схемы на жс перекатиться как раз несложно, когда разберешься с основами. А вот разбираться с основами на жс сложно, потому что это сложный язык (а схема - простой).
462 1235521
>>235431
Лол, я ждал этого комментария!
463 1235522
>>235519
Сколько времени нужно потратить на изучение схемы, чтобы потом на js перекатиться?
464 1235524
>>235485

>А ньюфагам советуют тролли, очевидно же.


Вуефорсер, так это ты?

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

Ну и подразумевается, что ньюфаги будут регулярно заниматься, а не два часа по субботам. Сам курс рассчитан на полгода как бы.

>>235509
Малаца. Там вроде choose language -> sicp как раз есть.
465 1235525
>>235522
Ну, часа два.
466 1235527
>>235438
Ты чё, с языком изображений самый фан. Самый пиздец там в последних двух главах, в которых пишется сначала свой интерпретатор, а потом свой компилятор.
467 1235529
>>235527
Да интерпретатор так-то норм, компилятор вот да
!!!whatever.gif1021 Кб, 500x474
468 1235534
469 1235538
>>235519
Жс и уж тем более пайтон проще и синтаксисом, и нахождением практического применения
470 1235547
>>235538
Ты не знаешь ни жс, ни пайтона, но что-то подпердываешь в тред, поздравляю.
аа.jpg61 Кб, 595x651
471 1235554
Немножко попробовал какую-то элементарщину позабивать, все работает. Скажите, а можно сделать так, чтобы он подробно расписал, что сначала он первую скобку вычислил, потом вторую, а потом их вычел между собой?
472 1235556
>>235527
Ну мне там осталось всего 3-4 задания с языком изображения. Еще добавился баттхерт, что нигде не указывается и не показывается, что нужно подключать сторонние библиотеки, более того, до этого я делал все через консоль и mit-scheme/scheme, а теперь нужно было ставить drracket. Еще одна функция из примера в книге, окзывается уже не являются частью той библиотеки (не помню как называется), и ее нужно либо было писать самому (могу уточнить, но что-то связано с графикой, но вообщем для моего уровня это нереально), либо искать в документации новую версию.
473 1235558
>>235556
Вроде draw-line, но я не уверен.
474 1235585
>>235554
stepper, вверху нажми
475 1235587
>>235554
с how to design programs начинай знакомство с Racket
476 1235588
>>235556
Могу для тебя скопипастить бойлерплейт, который я использовал в ракетке, когда решал.
аа.jpg40 Кб, 690x582
477 1235592
>>235587
Нажал и хуй че получилось. потыкал в этом окне, тоже нихуя.
>>235587
Все говорили начать с sicp, когда он не пошел, сказали изучить зеленого слоника. Сейчас изучаю зеленого слоника, говорят, что нужно сначала изучить htdp. Может определитесь уже?
478 1235598
479 1235603
>>235592

>Все говорили начать с sicp, когда он не пошел


Если у тебя "не пошёл" SICP, значит, твои умственные способности ниже, чем у первокурсника, и стоит всерьёз задуматься о том, подходит ли тебе весь этот путь, связанный с программированием. Слоник здесь не поможет.
480 1235604
>>235592
Что за зеленый слоник?
481 1235606
>>235604
Это он так The Little Schemer называет.
482 1235607
>>235592

>Все говорили начать с sicp


Вроде тебе с самого начала говорили sicp ИЛИ htdp (второй проще), но ты хотел на русском, а потом уже забил на это и последовал совету анона со слоником (или это не ты был). В любом случае, забей на них и ХУЯРЬ КОД, тебе тут до скончания веков будут взаимоисключающие советы давать. Закончишь слоника - потом выберешь, что делать дальше.
Малафья и три реки  MMV.mp415,1 Мб, mp4,
640x360, 3:38
483 1235613
>>235603
У первокурсника живой препод и рядом 20 таких же ньюфагов, а я сам по себе, один на один с книгой. Ну разве что вы помогаете, так вообще давно бы нахуй все это забросил.
>>235607
Да, это все я был. У тебя хорошая память. Слоник-то идет потихоньку, вчера ткнули, что не так делаю, сейчас начал потихоньку переделывать и вроде получается.
Вот вам прикольная песня про слоника, кстати.
484 1235617
>>235613

>У первокурсника живой препод и рядом 20 таких же ньюфагов, а я сам по себе, один на один с книгой.


Тоже верно. Ну наверни видеокурсов, что ли: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/
485 1235618
>>235617
Ну я пока слоника мучаю, вроде получается, перескакивать пока не хочу.
аа.jpg49 Кб, 586x646
487 1235641
>>235619
Нету блядь у меня этой хуйни, Там другая надпись, нажимаю ее и в выборе нет того, что у тебя. Если сверху нажать отмеченную тобой хуйню выдает пик, который я выше отправлял. Блядь, заебало, то-ли я долбоеб, то-ли программу не той версии скачал, то-ли вы тролллите. Ебаное говно, сраную развертку двух скобок не могу бляьд полчаса разобраться.
489 1235655
>>235641
Мне кажется тебе лучше htdp всё же, во всяком случае он от разрабов Racket
490 1235660
>>235649
Спасибо, все получилось. Для тебя есть отдельное место в раю, а для создателя интерфейса этой проги отдельное место в аду.
491 1235664
>>235655
Ну мне уже ткнули, как правильно сделать, чтобы он показывал, мне большего-то наверно и не нужно будет, дальше только интерпретатор дальше у слоняры дрочить.
492 1235667
>>235660
теперь забудь про #lang racket, желаю тебе начать с 0 htdp second edition
493 1235669
>>235664
аналитически мыслить надо, а не что аноны посоветуют тупо, слоник даже не по Racket вроде, а именно по Scheme
494 1235672
>>235669
Ну блядь упражнения слоника делать в этой программе, если я все верно понял. Кстати сколько памяти там поставить максимум? Было 128, поставил сначала бесконечно, так он очень долго стал грузиться, теперь поставил 350, вроде быстрее, но вначале еще быстрее было. Вернуть 128 и не выебываться?
495 1235675
>>235672
вероятно да, не думал над этим
496 1235677
>>235672
у меня чуть тормозит ток под косарь строчек кода когда, поэтому не жалуюсь со 128
497 1235679
>>235672
а как кстати поменять лимит?
498 1235681
>>235677
Ок, вернул на 128.
аа.jpg78 Кб, 585x635
499 1235686
>>235679
Держи. ХОтя как мне тут помогают, я должен сесть на поезд, приехать и сам за тебя мышкой нажать, лол.
500 1235694
По-моему вместо SICP-треда, нужно сделать тред в честь Scheme и книгами про неё в целом. Так ведь удобнее, здесь по факту обсуждают схему (Racket), а SICP и другие книги уже вытекают из этого.
501 1235696
Просто для любителей Scheme получается и /lisp/-тред, и этот, как-то неудобно 2 треда
502 1235698
>>235694
Да тут только один даун я про лисп пиздит, остальные нормально сикп решают. Но я с азами вроде разобрался и непонятки если будут, по постам в этом итт доразбираюсь, а слоняру закончу, тоже сикп начну.
503 1235701
Поборол первую главу. Не на пятерку, но чаще было нудно, чем сложно. Что следует ожидать от второй главы?
504 1235704
>>235613
Зелеееный слониик тута в тред пришел
Зелеееный слоонииик скобок нам прииинес
Пока ребятаа все толстили
Зеленныыый слооник тута в тред писаал
Писал о том как надо лисп учить
О том как вызывать проклятую лямбду
О том как трудно всем, особенно ему
ему, зеленому слонику
505 1235708
>>235669
Долбоеб, racket - это и есть scheme.
506 1235709
>>235696
Ну сикп ведь тоже по лиспу. Да и меня-дурачка вроде как пригрели и не сильно уже хуесосят за дебильные вопросы. А я туда перекачусь и опять меня пидарасить будут. Ну я изначально-то вкатился, т.к. сикп читал, дошел до 40 страницы и понял, что не тяну, вот на слоняру зеленого и переобулся, чтобы потом опять к сикпу вернуться.
507 1235710
>>235696
/lisp/-тред про коммон лисп по большому счету, а этот тред для вкатывальщиков, все норм
508 1235712
Вкатывался в программирование с сикпа, задавайте ответы.
509 1235713
>>235701
Постил бы прогресс в тред, епт. Ну вторая глава уже посложнее, но если в первой для тебя все было легко, то вторая пойдет нормально
510 1235714
>>235712
До него вообще даже паскаль\бейсик в школе не тыкал? Что параллельно\сразу после читал и делал? Сколько тебе лет было?
511 1235717
перекатите тред
512 1235718
>>235717
Так опа вроде нет пока, тут за полчаса 50 постов настрочили, может он придет перекатит
513 1235722
>>235708
Долбоёб твой дед и ты с 3ёх лет
Приблизительно одно и тоже, но по факту разные языки
514 1235723
>>235714
Не тыкал. Ничего параллельно не делал, ну может пару задач на си сделал, английский учил. 18
515 1235730
>>235723
ваще меня очень смущает, что я поздно начал, чувствую себя дауном
516 1235732
>>235730
Есть в 30 начинают и ничего
517 1235744
>>235722
Не приблизительно, а racket - подвид scheme
Алсо всегда можно написать #lang r5rs
518 1235746
>>235723
И как зашло-то? До конца доделал? Ну ты вообще так-то крут, анон.
519 1235752
>>235746
Сделал все задания из первой главы, немного из второй. Потом перекатился на кресты ¯\_(ツ)_/¯
520 1235753
>>235744
Ну, так не одно и тоже всё равно
521 1235758
>>235752

>перекатился на кресты


беру свои слова назад, лол
522 1235760
>>235753
Я и не говорил, что это одно и то же, перечитай: >>235708
523 1235762
>>235760
Я думал ты это от части написал из-за поста анона, который почему-то считает, что это одно и тоже
(Вернее агрессивного долбоёба из /b/, а не анона)
524 1235763
>>235760
Бля ахахаха, объебался, сорре
525 1235764
526 1235767
>>235758
Почему лол
527 1235776
>>235767
Ну кресты нетрендово же, я думал ты скажешь "прочитал первые три главы, потом запилил криптостартап на изоморфик жс и го", а ты походу laba1.cpp пошел делать((
528 1235779
>>235776
Я собираюсь в битардию ехать, чтобы js учить.
529 1235782
>>235779
Решили уже, что с пердежом делать?
530 1235784
>>235782
Проиграл. Но о чем ты?
531 1235786
>>235776
На крестах биток написан
532 1235788
>>235786
Биток написан на языке математики, а на чем там конкретные клиенты - дело десятое (там кстати форт используется для контрактов емнип).

>>235784
Ну там вроде проблема с пердежом была, слишком много пердежа на квадратный метр, из-за этого идея битардска была под угрозой
533 1235794
>>235788
Кресты круто, просто ты не понимаешь
534 1235796
535 1235805
>>235788
Лол. Открыл, и правда там это обсуждают. Да хуй знает, проветривать или нюхать, третьего-то не дано. Ну не привязывать же датчик дыма к жопе каждого участника.
536 1235808
>>235805

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


/me ушел на xvideos гуглить
537 1235827
>>234953

>Хочу.


Можешь поиграться: bGlzcGFjaEBqYWJiZXIucnUNCi9zdWINCi91bnN1Yg==
538 1235846
>>235701
Вторая примерно такая же по нудоте, но чуть повеселее, поразнообразнее и картиночки предлагают подрочить.
kt9u.jpg19 Кб, 500x500
540 1235855
>>235852
Какие комнаты?
541 1235859
>>235524

>Вуефорсер, так это ты?


В каком-то смысле можно так сказать, лол.

Я вообще склонен форсить практичные вещи, но без фанатизма.
Был тут ещё долбоёб, который тупо форсил Vue не в тему и без аргументов, так это не я.

>Сам курс рассчитан на полгода как бы.


В процессе обучения всё решает мотивация. Вообще всё.
И мир сильно изменился с тех пор, как был создан этот курс.
Сейчас люди по-другому воспринимают программирование.
У них другие ожидания. Сикп в них не вписывается, и умственные способности тут ни при чём.
Так что, я продолжаю настаивать, что этот курс не годится для ньюфагов в 2018.

А слоник создаёт иллюзию простоты.
Это именно иллюзия, но ньюфагу это непонятно, пока он не дойдёт до определённого места.
Так что и слоник не годится для ньюфага.
Но, ничего страшного не случится, если ньюфаг попробует.

И да, речь идёт о полном ньюфаге, который никогда раньше не программировал.
542 1235867
>>235859

>приходит в сикп-тред


>начинает доказывать, что сикп ненужен


Не очень-то ПРАКТИЧНО.

>И мир сильно изменился с тех пор


Какая-то вода и демагогия. По делу есть чо?

>А слоник создаёт иллюзию простоты.


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

>И да, речь идёт о полном ньюфаге, который никогда раньше не программировал.


А математикой занимался? А физикой? Может он поэтом был, ну или грузчиком? А цели у него какие? И т.п. Вода, короче, и демагогия.
543 1235868
>>235859
Есть ньюфаг, т.е. я, который затупил на сикпе и перекатился на слоняру. Слоняра вроде получается, ну пройду я целиком всего слоника, потом обратно на сикп перекачусь. Прорешаю пару глав, как советовали выше и буду учить js или что-то непосредственно связанное с будущим трудоустройством. Это нормальный план?
544 1235882
>>235868
Да, это нормальный план.
По крайней мере, он не выглядит невыполнимым.

В конце концов, все люди разные, и как оно тебе - знаешь только ты.

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

>>235867

>приходит в сикп-тред


>начинает доказывать, что сикп ненужен


>Не очень-то ПРАКТИЧНО.


Наоборот, это весьма практично.
Потому, что за пределами сикп-треда все и так это знают, лол.
sage 545 1235904
>>235882

>Потому, что за пределами сикп-треда все и так это знают, лол.


Ну прочитай шапку раздела, http://teachyourselfcs.com/ или ту пасту на луркморе. Ты сейчас выглядишь как долбоеб, который пришел посрать просто потому что может.
546 1235906
>>235904
Ты сейчас выглядишь как долбоеб, у которого нет чувства юмора.

И который не умеет и не любит читать, но думает, что овладел телепатией.
547 1235922
>>235906
Во-первых, не думаю, а овладел.
Во-вторых, за этот навык мне, apparently, пришлось кое-чем поплатиться.
548 1236074
549 1236156
>>234903
Нахуя ты эту книгу для детей читаешь? Будь мужиком блядь, читай сицп.
550 1236161
>>234948
Да идите нахуй со своими конфами. Я блядь сотни раз в телеге создавал конфы по сицп, в итоге дегенераты с двача начинали обсуждать бизнес, тян, и кидаться аниме стикерами. Все в итоге забросили сицп. Просто блядь читайте и отписывайтесь в тред.
551 1236165
>>235151
Например выебать твою мамашу шлюху. Идити нахуй со своим питоном и бытом блядь, программирование не изучается путем изучения синтаксиса питона.
552 1236174
Блядь, каждый раз когда кто-то где-то упоминает сицп приходят тонны неосиляторов которые пытаются всем показать что это не они дауны, а книга старая и вообще не практичная. Хотя блядь нихуя не поменялось в техниках управления сложностью с девяностых годов. Ну паралеллизм более развился, ООП тоже. А остальное всё тоже. Короче если вы сами не хотите читать, то нахуя других пытаетесь отговорить? Идите занимайтесь бытом, пишите практичные вещи или чё вы там хотели делать. И да, сицп можно за семестр осилить, если голову всяким мусором не забивать типо двача/мемами/аниме.
553 1236184
вам тред перекатили, нахуй вы еще здесь пишете?
554 1236234
>>236184
Мы - элита подводных интернетов, очевидно же.
555 1236396
>>236184
Нахуй на главном ссылка сюда?
556 1237052
>>190066
я тоже как раз!
557 1239045
>>187852 (OP)
НИКАК не могу понять, чем отличается аппликативный порядок от нормального, объясните задание 1.5, буду благодарен, но с меня как обычно
558 1240008
>>239045
погугли
ae0c3e42c2db1e2af6664389a034b6f7[1].jpg110 Кб, 980x590
559 1245625
Боже, как находить порядок роста алгоритмов? Вот, например, как определить порядок роста для следующей процедуры:
(define (sine angle)
(if (not (> (abs angle) 0.1))
angle
(p (sine (/ angle 3.0)))))
560 1247257
Пиздец ваш сикп сложный, ебал в рот. Мне аж алгем пришлось вспоминать. Такая поебота залупная сука шакалы блядь
561 1263361
поставил drrocket, но он меня шлёт нах, когда пытаюсь использовать define внутри другого define
define: found a definition that is not at the top level
562 1263362
>>263361

>racket


быстрофикс
Тред утонул или удален.
Это копия, сохраненная 14 сентября 2018 года.

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

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