Category: образование

Category was added automatically. Read all entries about "образование".

SICP по-русски.

Сделал перевод первых двух лекций SICP.



Если кому-нибудь интересно вторую лекцию искать здесь ЦКУНК! 
Если кто-то не в курсе SICP это вводный курс по программированию читался в MIT, в начале 80х. Не смотря на то что прошло уже четверть века, актуальности лекции не потеряли. 
Снусмумрык

Изменение пространства имен символа

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

Вот пример кода:

(define (some-function a-symbol)
  (define z 11)
  (eval a-symbol))

(some-function 'z)


Естественно, в данном случае интерпретатор отрапортует об ошибке, поскольку с символом z, передаваемым в some-function не связанно значение. Вопрос в следующем: как мне сделать именно так как хочется :), тоесть, чтобы внутри функции передаваемый символ связать с новым пространством имен.

В plt-scheme достаточно много различных функций по работе с пространствами имен. Можно их создавать, выбирать и т.д. Самым, кажется, связанным с данной темой является следующий пример:

  (let ((ns (make-base-namespace)))
    (parameterize ((current-namespace ns))
      (define z 11)
      (eval '(define z 14) ns)
      (display z)
      (newline)
      (display (eval 'z)))))

но тут я наталкиваюсь на другую проблему: получается что (define z 11) и (eval '(define z 14)) действуют в различных областях имен. Т.е., как я понимаю (parameterize ((current-namespace ns)) ...) действует только для оператора (eval ...) ?
Но мне хотелось бы именно совместить определенный символ в текущем контексте (при помощи (define ...)) с передаваемым в качестве аргумента функции символом. Подскажите пожалуйста как можно (и можно ли) подобного достичь?

Спасибо заранее.
anime

SICP, субтитры

А существуют ли где-то в природе русские субтитры к видеолекциям Structure and Interpretation of Computer Programs?

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