© Денис Владимирович Голиков, 2017
ISBN 978-5-4485-6644-8
Создано в интеллектуальной издательской системе Ridero
Snap! – блочная среда программирования, разработанная на основе Scratch в Калифорнийском университете в Беркли (University of California at Berkeley).
Основным отличием данной среды программирования от Scratch являются расширенные возможности по построению собственных блоков, а также списки и функции первого класса. Эти мощные возможности позволяют использовать Snap! не только в начальной школе, но и для обучения старшеклассников и студентов.
Пример создания цикла for.
Созданный блок for можно использовать наравне с любым встроенным блоком.
Алонзо досчитает до пяти, а затем скажет: «Я иду тебя искать!»
Snap! запускается и работает непосредственно в браузере и не требует установки на компьютер пользователя. Он написан на JavaScript и может оказывать ограниченное влияние на компьютер, так что вы можете безопасно запускать проекты других пользователей.
Snap! был разработан Дженсом Монигом (Jens Mönig at MioSoft Corporation, now at SAP), совместно с Брайаном Харви (Brian Harvey at Berkeley), при помощи студентов Калифорнийского университета в Беркли.
Типы данных.
Основным отличием Snap! от Scratch являются типы данных первого класса.
Объектами первого класса называются элементы, которые могут быть присвоены переменной или элементу массива, переданы как параметр и возвращены из функции. Благодаря этому в Snap! появилась возможность создавать двумерные массивы.
Создание двумерного массива.
Двумерный массив.
Также в Snap! в отличие от Scratch функции являются объектами первого класса. Это позволяет передавать функцию как аргумент в другую функцию. В следующем примере мы передаем функции map как аргумент функцию умножить на 10, и функция map производит это действие со всем списком, переданным ей в качестве второго аргумента.
Пример использования функции.
Еще одним удивительным отличием является то, что спрайты, тоже являются объектами первого класса, и могут быть переданы в качестве аргументов.
Спрайт – объект первого класса.
А вот такое возможно в Scratch?
Один спрайт «думает» о другом спрайте.
Эти особенности Snap! позволяют познакомить учащихся с функциональным программированием в отличие от Scratch, который используется для знакомства с императивным программированием.
Медиаредакторы.