Чтобы добавлять сообщения и комментарии, .

@Mendor:
Mendor

hangmen13.16ops.com

@side2k:
side2k

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

@13oz:
13oz

Внезапно, на ЛОРе все еще бывают годные (по крайней мере, для меня) темы — linux.org.ru

@13oz:
13oz

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

@13oz:
13oz

Упражнение 1.11 — избавьтесь от древовидной рекурсии. Сцуко. Второй день себе моск ломаю

@13oz:
13oz

Разложение рекурсии в итерацию — затейливое занятие %)

@13oz:
13oz

Делаю упражнения из SICP — все-таки синтаксис не кажется офигенно удобным, писать еще норм (спасибо, DrRacket, за посветку скобочек), а вот читать крайне тяжело. Это лечится?

@13oz:
13oz

Что лучше использовать для выполнения упражнений из SICP? Scheme, которая используется в книге, но трудно гуглится (допускаю, что гугл кривой) или racket/haskell/anything else? Именно в плане понимания концепций.

@asvil:
asvil

Похоже что SICP до обсерватории MIT не добрался. По ссылке прога, которая управляет компьютерами, которые воспроизводят принятый из космоса шум. haystack.mit.edu

@dukkha:
dukkha

One of the things every sorcerer will tell you is that if you have the name of a spirit, you have power over it.

@neFormal:
neFormal

Надо будет посмотреть наискосок: ocw.mit.edu

@ilardm:
ilardm

ещё не понял где мне всё это пригодится, но уже жалею, что не читал SICP раньше

@kb:
kb

sicpebook.wordpress.com . Там sicp, в котором не только шрифты и формулы улучшены кем-то старательно, еще и самое главное — сноски показываются на той же странице, где они поставлены (т.к. на той пдф, что я читал до этого, они были простынёй в конце главы).

@kb:
kb

А теперь прояснили про "каналы" (они же генераторы в питонах, но как и всё остальное — проще и понятнее описано), а заодно фибоначчи на них переписали screencloud.net

Мелочь, но мощная.

@kb:
kb

Правда, очень не понравилось, что они слегка "слукавили", т.к. в предыдущей же главе использовали некоторые мистические функции (get!) и (set!) для динамической диспетчерезации типов (type-tags), а в этой главе говорят "вызов любой функции до этого зависил только от её аргументов" и "для вычисления функции можно было использовать метод подстановки". ага, щас.

@waterlaz:
waterlaz

сегодня на канал в ирке зашел чувак, которого я уже и забыл, если честно. И тут сразу:
<shogun_assassin> waterlaz: i took your advice seriously: oi42.tinypic.com 8)
Да он не только правильные книги читает, у него еще и клава механическая!!!

@lovesan:
lovesan

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

Учил её Scheme. За три часа успел дойти до концепта анонимных функций — говорит, вроде кое-что даже начала понимать. Я щитаю, это вин.

@kb:
kb

Exercise 2.6. In case representing pairs as procedures wasn't mind-boggling enough, consider that, in a
language that can manipulate procedures, we can get by without numbers (at least insofar as nonnegative
integers are concerned) by implementing 0 and the operation of adding 1 as
(define zero (lambda (f) (lambda (x) x)))
(define (add-1 n)
  (lambda (f) (lambda (x) (f ((n f) x)))))
This representation is known as Church numerals, after its inventor, Alonzo Church, the logician who
invented the calculus.
Define one and two directly (not in terms of zero and add-1). (Hint: Use substitution to evaluate
(add-1 zero)). Give a direct definition of the addition procedure + (not in terms of repeated
application of add-1).


Для ленивых вот ответ:

(define zero (lambda (f) (lambda (x) x)))
(define one  (lambda (f) (lambda (x) (f x))))
(define two  (lambda (f) (lambda (x) (f (f x)))))

@kb:
kb

Сволочи. Они взяли и реализовали cons/car/cdr через замыкания. То есть я и сам мог это сделать, а не догадался.

(define (cons x y)
  (define (dispatch m)
    (cond ((= m 0) x)
          ((= m 1) y)
          (else (error "Argument not 0 or 1 -- CONS" m))))
  dispatch)
(define (car z) (z 0))
(define (cdr z) (z 1))

@kb:
kb

наконец-то дошел до chapter 2

@juniorroy:
juniorroy

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

@kb:
kb

Впрочем, dl.dropbox.com неплохо подошло бы для капчи.

@asmer:
asmer

1.17 и 1.18 в 1.17 нету проверки на 0, ну и хуй с ней.

(define (double a) (+ a a))
(define (halve a) (/ a 2))

(define (* a b)
(if (= b 1)
a
(if (even? b)
(double (* a (halve b)))
(+ a (* a (- b 1))))))

(define (even? a)
(= 0 (remainder a 2)))


1.18:

(define (double a) (+ a a))
(define (halve a) (/ a 2))

(define (* a b)
(*-i 0 a b))

(define (*-i s a b)
(cond ((= b 0) s)
((even? b) (*-i s (double a) (halve b)))
(else (*-i (+ s a) a (- b 1)))))

(define (even? a)
(= 0 (remainder a 2)))

@asmer:
asmer

сделал 1.16. пришлось подумать, но осилил. Мой код полностью совпал с тем, что я потом нагуглил для проверки (за исключением названия функций):

(define (p-i b n)
  (p-iter 1 b n))

(define (p-iter a b n)
  (if (= n 0)
    a
    (if (even? n)
      (p-iter a (* b b) (/ n 2))
      (p-iter (* a b) b (- n 1)))))

(define (even? a)
  (= 0 (remainder a 2)))

говно: mit-scheme не умеет readline искаропки

@lovesan:
lovesan

На ЛОРе сравнивают SICP с высерами страуструпа.
linux.org.ru
Совсем люди ебнулись.

@kb:
kb

Был в волшебном городе Желтые Воды, там же немного удалось sicp почитать (совсем чуть-чуть, страничек 40). Очень круто. Рекурсию уже изучили, области видимости и прочий scoping изучили, вместе с ним и замыкания, порядки вычисления ленивые/неленивые изучили, рекурсию изучили, причем и рекурсивный и нерекурсивный метод вычисления факториала реализуется через вызов самого себя, а потому лучше чувствуется разница между ними.

Ни циклов ни mutable-переменных не было. И да, schema — гениальный выбор. Язык учить практически не надо, ума не приложу сколько мусора пришлось бы объяснять, взяли бы они питон джаву или что-то еще.

@asmer:
asmer

Упражнение 1.4.
Заметим, что наша модель вычислений разрешает существование комбинаций, операторы кото-
рых — составные выражения. С помощью этого наблюдения опишите, как работает следующая
процедура:
(define (a-plus-abs-b a b)
((if (> b 0) + -) a b))

@asmer:
asmer

где взять gentoo-lisp-overlay с православным mit/gnu scheme ?

@asmer:
asmer

читаю sicp

@asmer:
asmer

Паскаль служит для по-
строения пирамид — впечатляющих, захватывающих статических структур, создаваемых
армиями, которые укладывают на места тяжелые плиты. При помощи Лиспа порождают-
ся организмы — впечатляющие, захватывающие динамические структуры, создаваемые
командами, которые собирают их из мерцающих мириад более простых организмов.

@13oz:
13oz

"Мне кажется, чрезвычайно важно, чтобы мы, занимаясь информатикой, получали радость от общения с компьютером. С самого начала это было громадным удовольствием. Конечно, время от времени встревали заказчики, и через какое-то время мы стали серьезно относиться к их жалобам. Нам стало казаться, что мы вправду отвечаем за то, чтобы эти машины использовались успешно и безошибочно. Я не думаю, что это так. Я считаю, что мы отвечаем за то, что их тренировать, указывать им новые направления и поддерживать уют в доме. Я надеюсь, информатика никогда не перестанет быть радостью. Я надеюсь, что мы не превратимся в миссионеров. Не надо чувствовать себя продавцом Библии. Таких в мире и так достаточно. То, что вы знаете о программировании, могут выучить и другие. Не думайте, что в ваших руках ключ к успешной работе с комьютерами. Что у вас, как я думаю и надеюсь, есть — это разум: способность увидеть в машине больше, чем вы видели, когда вас впервые к ней подвели, увидеть, что вы способны сделать ее большим." Алан. Дж. Перлис (1 апреля 1922 — 7 февраля 1990)

@lovesan:
lovesan

Оставил на ЛОРе коммент, вынесу-ка сюда, а то вдруг там потрут, а я так старался писать, что было бы обидно:
linux.org.ru

----------------------------------
И вообще, вы тут все долбанулись?
Какие груви? Бля, студентам надо в башку вдолбить что такое программирование вообще, на чем оно основано, и какие принципы надо соблюдать при написании кода. Заценивать ваши ебнутые моднявые хипстерские недоязычки им не просто не надо, а просто вредно блять.

И какие Си? Си блять вообще нельзя давать студентам, они от этого свихиваются и становятся полоумными ебанько, неспособными понять лямбды и замыкания.

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

@lovesan:
lovesan

Еще немного про SICP.

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

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

@4DA:
4DA

Не знаю, может я и слоу, но этот код для меня стал откровением:

(define (cons x y)
  (lambda (m) (m x y)))

(define (car z)
  (z (lambda (p q) p)))

(define (cdr z)
  (z (lambda (p q) q)))

@Darion:
Darion

Некто ztarlitz с яндекс видео начал переводить видеозаписи лекций по SICP. Субтитрами.
Вот первая из 20 лекций: video.yandex.ru
Там же можно найти еще две.
Еще у того же пользователя есть несколько переведенных лекций Фейнмана.

@Crazy-Owl:
Crazy-Owl

Первая глава сикп осилена на хаскеле.

@Crazy-Owl:
Crazy-Owl

И как я мог забыть про `div` для Integral?

@civil696:
civil696

Я что-то уже не помню где я увидел эту ссылку, возможно и в жуйке, но таки запощу на всякий пожарный. Тут кто-то начал переводить sicp'овские видеолекции на русский -> ztarlitz.livejournal.com

@folone:
folone

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

@folone:
folone

Кстати, нашёл сайтец, где можно себя проверить по задачкам из СИКПа. sicp.sergeykhenkin.com