Участник:Rubynovich: различия между версиями

Перейти к навигации Перейти к поиску
13 байт добавлено ,  16 лет назад
м
нет описания правки
мНет описания правки
мНет описания правки
'''Rubynovich'''. Это прозвище дали первые студенты, своему преподавателю по предмету "«Программирование на [[w:высоуровневыйвысокоуровневый язык программирования|языках высокого уровня]]"». Для демонстрации высокоуровневых алгоритмов он использовал язык [[Ruby]], что и послужило предпосылкой для появления такого прозвища.
 
Rubynovich преподает предмет "«Программирование на языках высокого уровня"» в [[w:МЭТТ|МЭТТ]] с 2003 года. За это время он сумел сформировать собственную программу обучения и свое уникальное видение сути предмета.
 
== Высокоуровневое программирование ==
* отсутствие циклов (все циклы должны быть заменены на итераторы);
* отстутствие условных конструкций if, case и т.д. (если они есть, то вы делаете, что-то не так);
* должны выполняться правила рефакторинга (код должен "«хорошо пахнуть"пахнут»).
 
=== Отсутствие переменных ===
p (1..5).inject( 0 ){ |sum,i| sum + i }
 
Как мы видим, нам не только удалось избавиться от двух присваиваний, но и превратить переменную в параметр. Кстати, решение задачи получилось "«в одну строчку"».
 
=== Отсутствие циклов ===
Чем же так плохи циклы? Тем, что "«зацикливаются"» и заранее нельзя указать количество итераций, которые они выполнят. Эта неопределенность погубила не одно поколение программистов. Поэтому и была придумана концепция итераторов, т. е. циклических конструкций, количество итераций которых заранее известно. Пример цикла:
 
a = [1,2,3,4,5,6]
3210

правок

Навигация