Перейти к содержимому


Фотография

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 28

#1 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 09 Июнь 2016 - 03:28

*
Популярное сообщение!

Итак, устройтесь поудобнее у ваших голубых экранов.
Сегодня я научу вас програмировать во Имя Луны!

oG22WCq.png

Мы привыкли писать программы для OpenComputers на Луа. И при этом не задумываемся о том, что язык Луа в OpenComputers - это по сути "язык низкого уровня".
На нем мы пишем все - начиная от прошивок BIOS и операционных систем, и заканчивая чатиками для OpenGlasses.
 
Однако, когда объем кода не имеет решающей роли, и есть время для медитации, программист может дать душе отдохнуть, используя красивые конструкции высокоуровневых языков.
И таким языком сегодня станет MoonScript.
 
 
# Что это такое?
MoonScript - это язык с интересным и лаконичным синтаксисом. Он позволяет использовать привычные конструкции ООП (объектно-ориентированное программирование) и ФП (функциональное программирование) в сеттинге Луа.
Сам автор называет его "CoffeeScript for Lua".
 
Код на MoonScript хранится в файликах с расширением *.moon и транслируется в обычный код Lua. Который может затем быть выполнен на компьютерах или роботах OpenComputers.
 
Плюсы:
* краткий и красивый код (субъективно)
* изучение нового, интересного (объективно)
 
Минусы:
* Транслированный код хуже читаем, и немного объемнее, чем аналогичный код, написанный изначально на Луа
 
 
# Установка
Приведу пример установки для Debian + Lua5.3. Если у вас другая OS - смотрите соответствующие инструкции по ссылкам.
 
1) Lua (https://www.lua.org/start.html)

$ sudo apt-get install lua5.3

2) Пакетный менеджер LuaRocks (https://luarocks.org/#quick-start)
Для его установки возможно потребуется пакет liblua5.3-dev.
Установим его командой:

$ sudo apt-get install liblua5.3-dev

Далее следуем инструкциям с официального сайта:

$ wget http://luarocks.org/releases/luarocks-2.3.0.tar.gz
$ tar zxpf luarocks-2.3.0.tar.gz
$ cd luarocks-2.3.0
$ ./configure; sudo make bootstrap

3) Ставим пакеты MoonScript (http://moonscript.org/#installation)

$ sudo luarocks install moonscript

Теперь в системе появятся программы moon и moonc. Ура!
 
К слову, при их запуске может вылетать ошибка типа

/usr/local/share/lua/5.3/alt_getopt.lua:24: attempt to call a nil value (global 'module')

Это происходит потому, что moonscript давненько уже не обновлялся, и использует устаревшее ключевое слово module.

Фиксится при помощи правки файликов alt_getopt.lua и moon.
 
В файле alt_getopt.lua необходимо закомментировать 24 строку (module ("alt_getopt")) и дописать в самый конец строку

return {get_opts = get_opts, get_ordered_opts = get_ordered_opts}

В файле moon исправляем вторую строку на

local alt_getopt = require("alt_getopt")

Все это в нашем случае можно сделать командами:

$ sudo gedit /usr/local/share/lua/5.3/alt_getopt.lua
$ sudo gedit /usr/local/lib/luarocks/rocks/moonscript/0.4.0-1/bin/moon

Все! MoonScript установлен, пропатчен и готов к работе.
 
 
# Подсветка синтаксиса
Очень рекомендую писать код в редакторе заточенном под код. Чертовски удобно, поверьте.
Для MoonScript существуют пакеты подсветки синтаксиса для разных редакторов.
 
1) Sublime Text / Text Mate - https://github.com/l...script-tmbundle
2) vim - https://github.com/l.../moonscript-vim
3) Atom - https://atom.io/pack...uage-moonscript
4) Textadept - https://github.com/l...cript-textadept
 
 
# А теперь - магия!
Для примера, я переписал код библиотечки Braille Bicycle с использованием MoonScript.
Теперь она использует ООП подход (привет, Krutoy :) ).
http://pastebin.com/NQc7JCH3
 
Этот файлик я потом "откомпилировал" в Lua простой командой:

$ moonc braille.moon

И получил на выходе рабочую библиотеку braille.lua.
Далее, заливаем ее в OC и пишем простой тестовый код:

local gpu = require('component').gpu
local braille = require('braille')


local matrix = braille.Matrix(8, 8)
matrix:line(1, 1, 8, 1)
matrix:set(1, 2); matrix:line(4, 2, 5, 2); matrix:set(8, 2)
matrix:set(1, 3); matrix:line(4, 3, 5, 3); matrix:set(8, 3)
matrix:line(1, 4, 3, 4); matrix:line(6, 4, 8, 4)
matrix:line(1, 5, 2, 5); matrix:line(7, 5, 8, 5)
matrix:line(1, 6, 2, 6); matrix:line(7, 6, 8, 6)
matrix:line(1, 7, 2, 7); matrix:line(4, 7, 5, 7); matrix:line(7, 7, 8, 7)
matrix:line(1, 8, 8, 8)


gpu.setForeground(0xC61331)
matrix:render(gpu, 14, 12)
matrix:render(gpu, 46, 12)
gpu.setForeground(0xFFFFFF)
matrix:render(gpu, 30, 12)
matrix:render(gpu, 62, 12)

И вуаля! Работает. 
 

hlQkzSy.png

 
# Игровая трансляция
Все это хорошо, но иногда может быть полезна возможность использовать *.moon исходники прямо из OC, без предварительной компиляции.
Уже поздно, поэтому расскажу об этом как-нибудь в другой раз.  :D

 

Скажу лишь, что помимо всего прочего, у MoonScript есть такая любопытная тулза, как онлайн "компилятор". Его можно найти вот здесь:

http://moonscript.org/compiler/

 

 

# UPD

Товарищи Krutoy и evgkul выпустили транслятор MoonScript на чистом Луа, что позволяет запускать и "компилировать" программы MoonScript прямо из OpenOS.

Заценить и потестить можно по этой ссылке:

https://github.com/e...t-opencomputers

 

Пишите багрепорты (сюда или на GitHub), и отправляйте свои пуллреквесты, чтобы улучшить программу.

 

UPD 3

 

Добавил MoonScript в репозиторий. Теперь можно установить его и потестить всего одной командой:

hpm install moon

Сообщение отредактировал Totoro: 30 Ноябрь 2016 - 12:15


#2 Оффлайн   Krutoy

Krutoy
  • Гуру
  • Сообщений: 499
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 09 Июнь 2016 - 12:30

Я сам хотел написать про мунскрипт, так как я фанат этого языка и пишу Арбузер на нем. Ты меня опередил.

 

И да, я уже несколько раз пытался пересобрать moon компилятор под ОС, но потратив десятки часов изучения исходников остановился на поиске решения с заменой debug функций, отмененных в ОС, но использующихся при компиляции.

Буду рад сотрудничать в этом направлении, так как хочу сделать moon-интерпритатор и возможность запускать .moon файлы прямо из OpenOS.

 

Тему желательно перенести в статьи в силу ее образовательной функции, а не форумного обсуждения.

 

P.S. Лайк за ООП. Респект Тоторо



#3 Онлайн   davial

davial
  • Пользователи
  • Сообщений: 440
  • Уровень сигнала: 15,29%
  • В игре: 115 час. 7 мин.
  • ГородТроон в системе Канопуса.

Награды

                    

Отправлено 09 Июнь 2016 - 12:35

А почему бы, для установки Debian + Lua5.3 не сорганизовать bat-ник ? Чтобы автоматом устанавливало и фиксило.



#4 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 09 Июнь 2016 - 12:50

И да, я уже несколько раз пытался пересобрать moon компилятор под ОС, но потратив десятки часов изучения исходников остановился на поиске решения с заменой debug функций, отмененных в ОС, но использующихся при компиляции.

Буду рад сотрудничать в этом направлении, так как хочу сделать moon-интерпритатор и возможность запускать .moon файлы прямо из OpenOS.

 

Вот я в ту же тему думаю сейчас. Хочу почитать исходники и подумать, как этом можно сделать.

В идеале надо будет собрать в виде пакета для OPPM или нашей новой репы.

В общем, будет желание - подрубайся к IRC (http://webchat.esper...?channels=cc.ru ), я там почти каждый день.

 

 

А почему бы, для установки Debian + Lua5.3 не сорганизовать bat-ник ? Чтобы автоматом устанавливало и фиксило.

 

Ну, это просто частный случай же. Я показал, какие действия нужны для того чтобы это поднять на локальной машине,

и какие потенциальные грабли могут встретиться.

Если ставить это все под Lua 5.1, то ошибок вообще не должно быть.

А вообще можно и скрипт соорудить. Если сделаешь что-нибудь такое, кидай ссылку, я прикнопаю к первому посту. =)



#5 Оффлайн   evgkul

evgkul
  • Пользователи
  • Сообщений: 369
  • Уровень сигнала: 0,64%
  • В игре: 4 час. 49 мин.

Награды

     

Отправлено 09 Июнь 2016 - 15:31

Меня больше волнует в процессе портировании LPeg


Там вроде на debug только эмуляция getfenv/setfenv. Если найдём замену LPeg - можно будет найти какой-то парсер Lua и сделать таблицу с функциями и их сырцами


И, мне кажется, всё это дело проще вынести на c9/openshift/другой хост - на опенкомпах будут ЛАГИ


Сообщение отредактировал evgkul: 09 Июнь 2016 - 15:29


#6 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 09 Июнь 2016 - 15:46

Меня больше волнует в процессе портировании LPeg


Там вроде на debug только эмуляция getfenv/setfenv. Если найдём замену LPeg - можно будет найти какой-то парсер Lua и сделать таблицу с функциями и их сырцами


И, мне кажется, всё это дело проще вынести на c9/openshift/другой хост - на опенкомпах будут ЛАГИ

 

Если выносить на сторонний сервак, то можно тогда вообще заюзать https://github.com/l...ript-javascript



#7 Оффлайн   evgkul

evgkul
  • Пользователи
  • Сообщений: 369
  • Уровень сигнала: 0,64%
  • В игре: 4 час. 49 мин.

Награды

     

Отправлено 09 Июнь 2016 - 15:48

Опенкомпы умеют юзать javscript? Если node, то, проще как CGI на сайт затолкать



#8 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 09 Июнь 2016 - 16:26

Я имею ввиду, что один из вариантов - поднять на стороннем серваке "компилятор" MoonScript.

По ссылке что я кидал как раз его реализация на JS. То есть поднять вообще ноль проблем.

 

А на компе OC написать несложный клиент, который будет стучаться на сервак и получать транслированный код.



#9 Оффлайн   evgkul

evgkul
  • Пользователи
  • Сообщений: 369
  • Уровень сигнала: 0,64%
  • В игре: 4 час. 49 мин.

Награды

     

Отправлено 09 Июнь 2016 - 16:36

Будет ОЧЕНЬ лагуче, компилятор - либа, сделанная из lua, lpeg и moonscript через emscripten, а cgi умеют почти все веб-сервера

#10 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 09 Июнь 2016 - 16:38

Будет ОЧЕНЬ лагуче, компилятор - либа, сделанная из lua, lpeg и moonscript через emscripten, а cgi умеют почти все веб-сервера

 

Ну, вот эта хрень же работает: http://moonscript.org/compiler/

Можно попробовать на серверную часть то же самое свалить.

 

UPD. Хотя да, ты прав. Будет лагуче.


Сообщение отредактировал Totoro: 09 Июнь 2016 - 16:42


#11 Оффлайн   Krutoy

Krutoy
  • Гуру
  • Сообщений: 499
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 09 Июнь 2016 - 18:26

LPeg для Lua уже есть и называется LuLPeg

 

И да, для совместной работы я создал репу на C9, просите доступ кто будет участвовать.

https://ide.c9.io/krutoy242/moonoc

 

Я уже изменил там большенство либ и добавил свои, что бы всё запускалось на ОС.


Сообщение отредактировал Krutoy: 09 Июнь 2016 - 18:27


#12 Оффлайн   evgkul

evgkul
  • Пользователи
  • Сообщений: 369
  • Уровень сигнала: 0,64%
  • В игре: 4 час. 49 мин.

Награды

     

Отправлено 10 Июнь 2016 - 07:04

LPeg для Lua уже есть и называется LuLPeg
 
И да, для совместной работы я создал репу на C9, просите доступ кто будет участвовать.
https://ide.c9.io/krutoy242/moonoc
 
Я уже изменил там большенство либ и добавил свои, что бы всё запускалось на ОС.


Там совместимость с LPeg неполная

#13 Оффлайн   Krutoy

Krutoy
  • Гуру
  • Сообщений: 499
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 10 Июнь 2016 - 09:57

Там совместимость с LPeg неполная

В доках LuLPeg написано, что ВСЕ функции поддерживаются, файл теста выполняется почти полностью, за исключением технических. Вот:

LuLPeg passes most of the LPeg test suite: 6093 assertions succeed, 70 fail.

None of the failures are caused by semantic differences. They are related to grammar and pattern error checking, stack handling, and garbage collection of Cmt capture values.


#14 Оффлайн   evgkul

evgkul
  • Пользователи
  • Сообщений: 369
  • Уровень сигнала: 0,64%
  • В игре: 4 час. 49 мин.

Награды

     

Отправлено 10 Июнь 2016 - 12:17

Придолбал костыль, вроде работает БЕЗ debug


--getfenv и setfenv юзаются только один раз, можно особо не заморачиватся
local tablo={} --Окружение
local envtablo -- над этой таблицей будут проводится издевательства
local function setfenv(func,argtablo)
  envtablo=argtablo
  local metatablo ={__index=envtablo,__newindex=envtablo}
  setmetatable(tablo,metatablo)
  return func
end
local function getfenv()
  return envtablo
end
local function prepare(func)
  setfenv(nil,_ENV)
  return func
end
return {setfenv=setfenv,getfenv=getfenv,prepare=prepare,tablo=tablo}

Сообщение отредактировал evgkul: 10 Июнь 2016 - 13:58


#15 Оффлайн   evgkul

evgkul
  • Пользователи
  • Сообщений: 369
  • Уровень сигнала: 0,64%
  • В игре: 4 час. 49 мин.

Награды

     

Отправлено 10 Июнь 2016 - 14:35

Заказываю ЗДОРОВЕННЫЙ файл с кодом на moonscript для тестов



#16 Оффлайн   evgkul

evgkul
  • Пользователи
  • Сообщений: 369
  • Уровень сигнала: 0,64%
  • В игре: 4 час. 49 мин.

Награды

     

Отправлено 10 Июнь 2016 - 16:12

Бета-версия порта компилятора Moonscript под Opencomputers, портировал я и Krutoy

https://github.com/e...t-opencomputers


  • Totoro и SergOmarov это нравится

#17 Оффлайн   SergOmarov

SergOmarov
  • Пользователи
  • Сообщений: 564
  • Уровень сигнала: 0,35%
  • В игре: 2 час. 36 мин.

Награды

     

Отправлено 11 Июль 2016 - 06:21

Вопросы оп языку.

Заметил, что там можно не использовать скобки при различных конструкциях, чтобы выглядит очень ново и непривычно, еще заметил, что для отделения одних конструкций от других используются белые символы. Это сделано для красоты, или компилятор их распознает с неким смыслом структуризации?

Пример: две функции в классе

class SomeContainer
 set: (some) => --как компиль понимает, что функция get не является локальной внутри set? Если не с помощью табуляции, то возможно по "=>", а если бы я использовал "->" и не обращался к контейнеру, а просто возвращал константу?
    @some=some
 
 get: () =>
    @some


#18 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 2 001
  • Уровень сигнала: 169,88%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 11 Июль 2016 - 08:25

Очевидно, по индентации. Кроме того, для пустых функций необязательно использовать скобки для параметров.

А => ты с успехом можешь юзать внутри функции.

test = ->
  -- вот и "=>"
  func = (a) =>
    @foo = "bar" .. tostring tonumber a
  func
fn = test!
a = {foo: "baz"}
fn a, 5
print a["foo"]
assert a["foo"] == "bar5"

Просто нужно понять, что =>, на самом деле, просто работает как : в Луа: добавляет сам в начало аргумент self, который может принимать любое значение. А cls\method a, b, c преобразуется в cls.method cls, a, b, c. Просто синтаксический сахар, не более того.


Сообщение отредактировал Fingercomp: 11 Июль 2016 - 08:27

  • SergOmarov это нравится

#19 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 11 Июль 2016 - 10:37

Здесь как в Питоне, определенной длины отступ слева обозначает блок кода.

То есть пока длина отступа не меняется - это все один блок.

 

Впрочем, для коротких функций в одно выражение, перенос использовать не обязательно, и можно написать что-то такое:

-- функция, которая всегда возвращает 10
f = () -> 10

В два выражения уже надо юзать отступ, иначе второе выражение будет считаться идущим после функции (после компиляции окажется за ее пределами):

-- Неправильно
f = () -> print 'Done'; 10


-- Правильно
f = () ->
  print 'Done'
  10

Сообщение отредактировал Totoro: 11 Июль 2016 - 10:40

  • SergOmarov это нравится

#20 Оффлайн   SergOmarov

SergOmarov
  • Пользователи
  • Сообщений: 564
  • Уровень сигнала: 0,35%
  • В игре: 2 час. 36 мин.

Награды

     

Отправлено 11 Июль 2016 - 18:45

А есть явные скобки для функций и других выражений? Отступы выглядят, конечно очень красиво и чисто, но ошибки в них, как мне кажется, будет очень трудно искать



#21 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 11 Июль 2016 - 19:09

А есть явные скобки для функций и других выражений? Отступы выглядят, конечно очень красиво и чисто, но ошибки в них, как мне кажется, будет очень трудно искать

 

Нет, другого синтаксиса для блоков кода нету.

Да, с ошибками случаются сложности. Надо обязательно проверять, не закрался ли где случайно таб, вместо пробелов.

Очень советую включать в редакторе конвертацию табов в пробелы. А если появляется необъянимый глюк - включать отображение пробельных символов (обычно отмечаются точками и черточками), чтобы увидеть потенциальный косяк.

 

Зато код будет чистым, белым и пушистым  :D



#22 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 742
  • Уровень сигнала: 52,19%
  • В игре: 392 час. 51 мин.

Награды

                 

Отправлено 11 Июль 2016 - 20:56

Да, с ошибками случаются сложности. Надо обязательно проверять, не закрался ли где случайно таб, вместо пробелов...  Зато код будет чистым, белым и пушистым 

Жертвы ради "пушистости" несоизмеримы с полезным выхлопом. Когда будут метаться кусманчики кода лярдами или тысячами строк откуда-то куда-то, искать потом какой-то пробельчик - гемор еще тот, наверно=)

 

 

Это как если бы взять да и не разбить обычный текст 

И такая дребедень Целый день: Динь-ди-лень, Динь-ди-лень, Динь-ди-лень!То тюлень позвонит, то олень. 
А недавно две газели Позвонили и запели: - Неужели В самом деле Все сгорели Карусели?

на абзацы/строфы, и при этом его уже не один простой человек  или даже лингвист  не сможет его скомпилировать и понять смысл=)

Немного это геморно, имхо, когда отступы являются требованием языка, а не стилем и их увеличение(уменьшение) извещает о начале(конце) блока, хоть и при этом чужой код воспринимается гораздо легче.



#23 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 11 Июль 2016 - 22:26

Жертвы ради "пушистости" несоизмеримы с полезным выхлопом. Когда будут метаться кусманчики кода лярдами или тысячами строк откуда-то куда-то, искать потом какой-то пробельчик - гемор еще тот, наверно=)

 

...

Немного это геморно, имхо, когда отступы являются требованием языка, а не стилем и их увеличение(уменьшение) извещает о начале(конце) блока, хоть и при этом чужой код воспринимается гораздо легче.

 

Нету гемора, когда привыкаешь к синтаксису.

Если писать в нормальном редакторе типа Sublime, то нет никаких проблем что-то куда-то скопипастить, и даже по пути автоматом табы в пробелы конвертнуть.

=)

Смешивать табы и пробелы в коде, это вообще такое дело, за которое надо руки отрывать.  ;)



#24 Оффлайн   SergOmarov

SergOmarov
  • Пользователи
  • Сообщений: 564
  • Уровень сигнала: 0,35%
  • В игре: 2 час. 36 мин.

Награды

     

Отправлено 12 Июль 2016 - 07:37

не закрался ли где случайно таб, вместо пробелов.
 

А можете компиль дописать, чтобы таб считался эквивалентным пробелу?



#25 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 12 Июль 2016 - 10:51

 

А можете компиль дописать, чтобы таб считался эквивалентным пробелу?

 

 

Как я уже сказал, смешивать табы и пробелы не стоит ни в коем случае.

Либо используй отступы табуляцией, либо пробелами.

 

Однако скажу по секрету, что MoonScript считает один таб равным 4 пробелам.  :)


  • SergOmarov это нравится

#26 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 2 001
  • Уровень сигнала: 169,88%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 12 Июль 2016 - 12:28

А ещё лучше — не выпендриваться, и использовать мягкую индентацию пробелами вместо жёстких табов.

Вы не мейкфайл или сырцы ядра Линукса пишете. Есть правила, стайл-гайды, которые рекомендуется соблюдать.

Так вот, для Луа и Мункрипта принят размер индентации в 2 пробела, использовать жёсткий таб не надо.

 

Для справки можете ознакомиться со статьёю на вики.



#27 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 30 Ноябрь 2016 - 12:12

Заморочился и добавил MoonScript for OpenCoputers в репозиторий.

Теперь MoonScript можно установить на ваш компьютер одной командой:

hpm install moon

P.S. Я правда не проверял, работает ли оно как надо. =) Возможны очепятки. Поэтому если кто проверит пакет moon - буду благодарен.



#28 Оффлайн   ALeXeR

ALeXeR
  • Пользователи
  • Сообщений: 204
  • Уровень сигнала: 34,01%
  • В игре: 255 час. 59 мин.
  • ГородОдесса

Отправлено 30 Ноябрь 2016 - 23:50

выглядит вкусно, но пахнет питоном, против него ничего не имею, но питон мне винигрет напоминает)



#29 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 01 Декабрь 2016 - 01:09

выглядит вкусно, но пахнет питоном, против него ничего не имею, но питон мне винигрет напоминает)

 

В таком случае - попробуй что-нибудь написать на нём.  :D

Может прийтись по вкусу, может наоборот.

 

На мой взгляд MoonScript добавляет в Lua немного функционального духа. И делает синтаксис немного более математическим.


  • Krutoy и Fingercomp это нравится





Темы с аналогичным тегами moon, power, owl, night, magic, ночью нечего делать, программирование, lua, moonscript

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных