Мост Руби ⇋ Хаскелль
Вы — Руби-разработчик? После серии статей (1,2,3) про Хаскелль у вас появилось новое хобби? Вы бы хотели использовать это кунг-фу в своём коде? Нет?
Познакомьтесь, Hubris. Hubris — это мост между Руби и Хаскеллем, между любовью и зависимостью, между ленивой праздностью и грубой, невероятной скоростью. Hubris будет мыть вам машину, врать вашему начальнику и спасать вашу жизнь. А если вам достаточно повезёт, он, к тому же, добавит функциональных прелестей к вашему руби-коду. Через чёрный ход.
Вкратце — как пользоваться (более полная документация — в тестовых файлах):
Есть несколько ограничений. Все функции принимают и возвращают не более одного аргумента. Это не должно быть проблемой: пользуйтесь массивами, если что. На данный момент Hubris умеет работать с числами, строками и базовыми типами (вроде nil, true и false).
Hubris откажетя компилировать хаскелль-код, который создаёт warning`и. Вы можете отказаться от этого требования, передав флаг
Кроме вышеописанных возможностей, хаскелль-код можно держать в отдельном файле, рядом с руби-кодом, и вызывать его вот таким образом:
Этой информации вам должно хватить для того, чтобы получить некоторое представление о Hubris`е, и захотеть поэкспериментировать. Если вы пропустили ссылку из начала топика, я её с радостью продублирую: вот она.
Изучайте Хаскелль ради Добра!
_________
Текст подготовлен в ХабраРедакторе
Да!
Познакомьтесь, Hubris. Hubris — это мост между Руби и Хаскеллем, между любовью и зависимостью, между ленивой праздностью и грубой, невероятной скоростью. Hubris будет мыть вам машину, врать вашему начальнику и спасать вашу жизнь. А если вам достаточно повезёт, он, к тому же, добавит функциональных прелестей к вашему руби-коду. Через чёрный ход.
Вкратце — как пользоваться (более полная документация — в тестовых файлах):
require 'hubris' # самая отличная строчка
class Target
hubris :inline =>"triple::Int->Int; triple n = 3*n"
end
t = Target.new
puts t.triple(10)
=> 30
* This source code was highlighted with Source Code Highlighter.Есть несколько ограничений. Все функции принимают и возвращают не более одного аргумента. Это не должно быть проблемой: пользуйтесь массивами, если что. На данный момент Hubris умеет работать с числами, строками и базовыми типами (вроде nil, true и false).
Hubris откажетя компилировать хаскелль-код, который создаёт warning`и. Вы можете отказаться от этого требования, передав флаг
":no_strict => true", но в глубине души что-то не будет давать вам покоя: вы совершите не очень благородный поступок.Кроме вышеописанных возможностей, хаскелль-код можно держать в отдельном файле, рядом с руби-кодом, и вызывать его вот таким образом:
hubris :source => "MyCoolModule.hs"
* This source code was highlighted with Source Code Highlighter.Этой информации вам должно хватить для того, чтобы получить некоторое представление о Hubris`е, и захотеть поэкспериментировать. Если вы пропустили ссылку из начала топика, я её с радостью продублирую: вот она.
Изучайте Хаскелль ради Добра!
_________
Текст подготовлен в ХабраРедакторе



комментарии (10)