Я специально для этой цели написал небольшую библиотеку, доступную здесь . Функция библиотеки chunked
особенно эффективна, поскольку она реализована в виде генератора , поэтому в определенных ситуациях можно сохранить значительный объем памяти. Он также не основан на нотации срезов, поэтому можно использовать любой произвольный итератор.
import iterlib
print list(iterlib.chunked(xrange(1, 1000), 10))
# prints [(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), (11, 12, 13, 14, 15, 16, 17, 18, 19, 20), ...]
Это книга по Озу: Концепции, методы и модели компьютерного программирования
Однако эта книга выходит далеко за рамки обучения языку. Некоторые люди рассматривают в «следующей библии» языки после SICP.
Моцарт / Оз для поддержки восьми различных парадигм
Здесь ' краткий обзорный документ, который должен дать вам некоторый контекст для этого - Парадигмы программирования для чайников: что должен знать каждый программист (pdf)
Каково ваше мнение об этом языке программирования
Моцарт / Оз дает вам возможность изучать, изучать и играть с очень широким спектром техник языков программирования.
Также я не хочу использовать Emacs; Есть ли у меня какие-либо другие варианты, такие как интерактивный интерпретатор или обычный цикл компиляции-выполнения?
Они используют Emacs как интерактивный интерпретатор.
Да, вы можете писать код в текстовом редакторе и компилировать и запускать из командная строка .
Что должен знать каждый программист (pdf)Что вы думаете об этом языке программирования
Mozart / Oz дает вам возможность исследовать, изучать и играть с очень широким спектром техник языков программирования.
Также я не хочу использовать Emacs; Есть ли у меня какие-либо другие варианты, такие как интерактивный интерпретатор или обычный цикл компиляции-выполнения?
Они используют Emacs как интерактивный интерпретатор.
Да, вы можете писать код в текстовом редакторе и компилировать и запускать из командная строка .
Что должен знать каждый программист (pdf)Что вы думаете об этом языке программирования
Mozart / Oz дает вам возможность исследовать, изучать и играть с очень широким спектром техник языков программирования.
Также я не хочу использовать Emacs; Есть ли у меня какие-либо другие варианты, такие как интерактивный интерпретатор или обычный цикл компиляции-выполнения?
Они используют Emacs как интерактивный интерпретатор.
Да, вы можете писать код в текстовом редакторе и компилировать и запускать из командная строка .
Изучение Моцарта / Оз, вероятно, было самым ценным опытом программирования, который я получил после окончания университета. Но в то же время это было и самое дерьмовое, потому что вы не можете использовать его в реальном мире. (Я даже думаю, что они удалили Оз из курсов из-за этого и заменили его смесью C ++, Java и Erlang.)
Так что для академических целей это отличный язык для экспериментов, чтобы изучить новые методы и стать «лучший» разработчик.
Но поскольку разработка хороша тем, что даже если вы не будете запускать свой производственный код в системе Моцарта, вы все равно можете украсть у нее много хороших идей и реализовать на вашем любимом языке. Просто взгляните на работу Йонаса Бонера , реализующую переменные потока данных в scala (или Ozma ).
Что касается дополнительных ресурсов, выполните поиск в Google на 2G1512 и ищите учебные материалы, лабораторные работы и лекции в формате pdf.