Перейти к публикации
Форум - ComputerCraft
LeshaInc

На каком языке разговаривают урны?

Рекомендованные сообщения

На этом.

Язык компилируется в Lua (поддерживаются версии 5.1, 5.2, 5.3 и даже возможно JIT).

Предупреждаю — этот язык является диалектом Lisp. Если ваш дед не оставил в кладовке пачку скобок, возможно у вас не получится на нем писать.

 

Из фич: pattern matching, прикольные циклы, фреймворк для тестов, красивые сообщения об ошибках.

 

Hello world на Urn:

(print! "Hello, world!")

Работает также арифметика в стиле лиспа:

(+ 2 (* 4 5))

Можно создавать функции:

(defun times-two (x)
  (* x 2))

(print! (times-two 2))
(print! (times-two 3))

и макросы:

(defmacro show (x)
  (print! "Compile-time" (pretty x))
  `(progn
     (print! "Run-time" ,(pretty x))
     (print! "Value" ,x)))
------------------------------------
> (show (+ 2 3))
Compile-time (+ 2 3)
Run-time     (+ 2 3)
Value        5

Можно использовать библиотеки из Lua:

(define bit32
  :hidden
  (require "bit32"))

(define & (.> bit32 :band))
(define ~ (.> bit32 :bnot))

и таблицы из Lua:

> { :foo 1
.   :bar 2 }
out = {"bar" 2 "foo" 1}

Компилятор языка написан на Lua UPD: компилятор написан на Urn и скомпилирован в Lua; предлагаю энтузиастам поиграться с ним в OpenComputers и сделать отчет.

А я пойду дальше употреблять вещества.

Изменено пользователем LeshaInc
  • Like 8

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
А я пойду дальше употреблять вещества.

шапочку из фольги не забудь надеть=)

п.с. где ты откапываешь эти эксклюзивы, всякие расты, лиспы, урнлы? :)  

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что-то данный язык больно схож с Обратной польской записью, только знаки стоят с другой стороны :D

Изменено пользователем Alex

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×