Обзор изменений в OwnLang | Создание языка программирования

Автор Andrei Golubev
Обзор изменений в OwnLang | Создание языка программирования

Всем привет.

Это анемон я хочу записать несколько видео про оптимизацию в языках программирования. Но прежде чем — это сделать нужно показать, что вообще изменилась в языке со времён последнего видео последнее видео мы писали игру agar.io — это было 11 июля 2015 года. С тех пор было очень много комментов я много-много и всё я сейчас хочу об этом рассказать если что-то из рассказанного вам будет интересно и, что нужно будет объясни подробнее.

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

Добавил я значит функциональная функциональность языку то есть теперь можно передавать функции как параметра допустим X равно дел анонимная функция получается. Вот такая вот какой-нибудь тела. Вот видишь мы можем вызывать эту функцию вот так можем её передавать куда-нибудь скажем какая-нибудь другая функция которая принимает функцию и мы можем здесь внутри эту функцию вызвать. Вот и дальше мы можем указать Apple X получается мы создаем переменную в которой переменной X которая которая сохранена функция дальше эту функцию мы. Передаем другую функцию которая уже не анонимно получу именно такой и здесь внутри этой функции вызываем данный параметр я вызываю без параметров. Ну можно конечно добавить вот так дисфункция X2 и там есть скажем так здесь можно из тёрна. Икс плюс 7 игрек вот смотрите мы определяем функции сложения вычитания умножения и деления. А присваиваем их в переменную дальше с этими переменами мы можем что-то уже делать. Мы можем сложите их все в массив. И прооперироваться поэтому массиву и вызвать на каждую эту функцию параметры 6 и 3 и большая получится чтобы выводим 6 + 36 — 36 x 36 / 3 и если я сейчас запущу так мы увидим, что 6 PLUS 396 — 336 1832 как — это всё работает определена function value в которой мы просто. Передаем интерфейс ей дальше мы можем его получите вызвать парсинг ну здесь анонимная функция получается уже дальше без названия сразу идёт идут открывается скобка идут параметры как мы. Передаем всё function дальше получение функции переменных мы теперь можем не по имени как раньше получать, а делаем такой вот сравнение если есть функция с таким именем тобой возвращаем и эти функции эту функцию, но если есть такая переменная с таким названием, тогда мы возвращаем функцию из переменной. То есть как бы достаём её is functional Way мы тут ещё сравниваем если — это фонтан валюта мы переводим типов и вызываем получаем сама с этим интерфейсом function мы можем вызывать параметры, что концы делается. Вот он и дальше уже прошло без изменений. Так это, что касается function value то есть хомяк добавил на функциональность этот пример который я вам сейчас уже показал. Даша добавила синтаксический сахар можно писать сразу равно до этого было приходилось писатель, а такую штуку. Я видел в языке. Скала и. Мне она очень понравилась добавлены еще пакета функционал. И теперь мы можем вызывать что-то типа Stream API есть набора чисел в массиве и мы можем их как в языке Python мы можем фильтровать их когда функции. Ведь мы. Передаем, тогда набор данных то есть массив. И Передаем функцию которая вызывается на каждом из значений этого вот массива если в условиях добавляется в новый массив если можно то не добавляется и получается такая вот фильтрация. В результате мы получаем другой уже массив дальше функция Map тоже самое только теперь она преобразует. Каждый элемент она уже не существует сколько мы передали куда значение только их и будет на выходе, но каждое значение будет уже изменена и потом ещё есть френч функциональные мы. Передаем тоже набор данных массив и продаем функцию которая применяется на из этих значений то есть вывод получается 2468 10 — — это чётное значение после фильтрации которые остались и дальше они возводят в квадрат 3664 100 дальше добавлен синтаксический сахар для доступа к элементам Map. Теперь мы можем получить значение по точки. По крайней мере — это экономит на четыре символа, но а если ключ будет. Вот такой. Скажи какие один. Тогда Вот так мы уже не напишем и придется использовать вот такой вот синтаксис. Ну по крайней мере для коротких ключей — это существенно упрощает код дальше добавил паттерн матчинг оператора Match pattern matching. Я тоже вдохновлялся все заказ. Кола выглядит меч оператором как Switch тоже есть рис потому, что здесь сразу этот блоке, но здесь нет потому, что здесь однострочник можно написать отличие оператором Switch тем, что есть самое то есть мы можем указать не только конкретное значение с которым мы будем сравнивать, но и некоторые шаблон например в общем именем переменной если ни одна из этих клеток не сработала, тогда вот этот вот именно Type присваивается переменной Type и дальше хотели этого. О'кей Skype. Мы можем использовать переменную Type UI делать какие-нибудь вещи и вот примеры, а есть некоторые случайное значение моего проверяем если — это ноль мы пишем если один One если — это любое другое число, тогда мы оставляем на — это значение в переменную X. Но дальше ещё есть условия к этого какое-то ветки если — это случайное число меньше 5 и тогда.

0 комментариев
0

Читайте также