Посты с тэгом lisp


[Из песочницы] Генерация кода на Python при помощи Hy

1. Что такое Hy


Hy — диалект Лиспа, который встроен в питон.


Благодаря тому, что Hy трансформирует свой Лиспоподобный код в Абстрактное Синтаксическое Дерево (AST) питона, с помощью Hy весь прекрасный мир питона — на кончиках пальцев и в форме Лиспа.



Читать дальше →


[Перевод] Что такого особенного в Nim?




Язык программирования Nim (ранее именовался Nimrod) — захватывающий! В то время как официальная документация с примерами плавно знакомит с языком, я хочу быстро показать вам что можно сделать с Nim, что было бы труднее или невозможно сделать на других языках.

Я открыл для себя Nim, когда искал правильный инструмент для написания игры, HoorRace, преемник моей текущей DDNet игры/мода Teeworlds.

(прим. пер. На синтаксис Nim имели влияние Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.)

Запускаем!


Да, эта часть всё ещё не захватывает, но просто следите за продолжением поста:

for i in 0..10:
  echo "Hello World"[0..i]

Читать дальше →


Python Meetup 27.02.15: Hy и Toga


27 февраля состоялся очередной Python Meetup. В этот раз мы обсуждали:

  • Hy — диалект, который позволяет Lisp-разработчикам использовать библиотеки Python, а Python’истам найти решение для некоторых проблем языка, например, отсутствия скобочек.
  • Toga — библиотека построения интерфейсов на Python, которая с первого взгляда выглядит как простой и универсальный инструмент, но на деле имеет ряд недоработок.

Во время Lightning Talk участники делились опытом экспорта .doc-файлов и идеями использования AST для трансляции Python в Ruby, JavaScript, C++ и др.

Читать дальше →


Hy — Lisp для Python

Нашел тут недавно такой интересный проект — Hy. Это такой лисп, который компилируется в абстрактное синтаксическое дерево (проще говоря, прямо в питон), и выполняется python интерпретатором.

Замечателен этот проект тем, что:

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

Что это значит.

Макросы позволяют описывать абстракции и реализовывать DSL внутри lisp. Они могут более гибко работать с обрабатываемым кодом. Это не просто декоратор, которые позволяют функцию обернуть. Да и генерировать макросами можно не только функции, но и вообще произвольные блоки кода.

Интеграция с питоном просто отличная. Hy может использовать любые модули, функции и классы, которые уже есть в питоне, а все функции и классы, написанные на Hy, можно использовать в обычных питоновских модулях. Благодаря расширению sys.meta_path, мод



Мини-интерпретатор Lisp'a на Python


Читая главу «Двоичные деревья» из книги Джона Монгана Programming Interviews Exposed я задумался о том, как чаще всего рекурсию объясняют начинающим программистам: через сортировку, обход двоичного дерева, построение последовательности Фибоначчи и т.д. Неужели нельзя найти пример поинтереснее? Из закоулков сознания вырвался Лисп, который по своей природе неотделим от понятия рекурсии. Более того, небольшой интерпретатор Лиспа — отличный пример для исследования рекурсии.

Каким же будет минимальный интерпретатор Лиспа, написанный на Питоне? К моему удивлению, решение уложилось в семь строк! Свою роль в этом сыграла как выразительность Питона, так и красота и незамысловатость Лиспа.
Читать дальше →


Link Roundup #25 или как я начал изучать Common Lisp

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

Итак, началось всё с того, что мне попалась ссылка на статью Паула Грэхема — Beating the Averages. В ней он рассказывает о том, как на заре становления интернета, вместе с одним своим другом начал стартап. В качестве языка они выбрали Lisp, и этот мощный язык позволил им работать настолько продуктивно, что они оставили далеко позади всех конкурентов. Я уже давольно длительное время разрабатываю проекты на Python, и весьма им доволен, как языком достаточно гибким и немногословным, но тут заинтересовался, может я чего-то не знаю, и нужно попробовать писать вебсервисы на Lisp? Так я начал искать, с чего бы начать…

…и тут, как будто случайно "подвернулась" акция в одном из интернет-магазинов, где я купил электронную версию книшк