Pull to refresh

Comments 21

Напрашивается фраза вроде «Мое Script-fu круче твоего».
Спасибо, хорошая статья. Но есть замечание. Если уже пишете на lisp-подобном языке, то ставьте отступы как принято в lisp'ах, а не в C. Скобки — для синтаксического анализатора, а не для программиста, для них нет смысла выделять отдельные строки:

(let ((a 1)
      (b 2))
     (+ a b))


Пусть вас не смущает "))))))" в конце строк, это нормально смотрится. Любой редактор с подсветкой скобок поможет понять где чья скобка.
И ещё: императивщина!
(define (difference x y)
  (let ((z (- (if (< x 0) (- x) x)
              (if (< y 0) (- y) y))))
       (if (< z 0) (- z) z)))

Я тем примером как раз и хотел показать императивные возможности. Потому как картинку проще обрабатывать по шагам, а не в одну строчку.

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

Кстати, Dragonizer, ваша версия функции difference должна называться difference!..
Не занком с lisp, параметры передаются по ссылке или по значению? Если второе, то какая разница, изменяются или нет локальные переменные.
Если первое, то беру свои слова обратно.
Нет, это я беру свои слова обратно. :)

> Не занком с lisp

Лиспы бывают разные. В некоторых и по указателю или имени аргументы передаются. Мы говорим о Scheme.
Не совсем понимаю. Здесь же нет никакого стороннего эффекта, нам передалась копия, которую никто кроме нас не видит. Я неправ?
Ох уж эти требования к скобкам. :)

Конечно, единые правила оформления это здорово, но мне, например, удобнее редактировать когда вижу где начинается и заканчивается каждый блок. Без прицеливания выделил строки и удалил по Ctrl+D или перенёс куда-нибудь. Или закомментировал.

Я бы и не против свои скрипты через какой-нибудь beautifier перед публикацией прогонять, но что-то пока ничего понятно-как-работающего (рекомендуют pprint.el) найти не получилось. Может подскажите чего?
Много букв и без самого главного — Крутейших картинок с результами.
Крутейшие картинки смотрите в упомянутом топике. Алгоритм оттуда, поэтому и результат тот же.
К тому же, речь шла о приручении языка, а не о решении конкретно моей задачи.
И еще: букв очень мало для статьи, которая с нуля рассказывает о том, как пользоваться новым языком. Обычно это занимает порядка десятка статей.
Я не сколько не умоляю Ваши заслуги, но речь таки идет о языке Графического редакторе и главный герой здесь — Изображение (не спрятанное где-то в четвертой ссылке, а красной нитью проходящей через повествование).
Спасибо, учту на будущее. Думаю, Вы правы в плане привлечения внимания к статье.
ВНИМАНИЕ. Если вы в другом источнике встретите противоречащую информацию, верьте ему, а не этой статье. Здесь всё слишком упрощено для новичков.

Прочитали, попробовали, порадовались что работает, и больше так никогда не пишите.
Вы правильно поняли назначение статьи.
Кстати, а что именно прямо-таки противоречит?
> Переменные в Scheme определяются с помощью конструкции let*

Везде в остальных расскажут про let.

> Здесь мы использовали функцию if

Ранее вы сказали что функция применяется к аргументам, но в данном случае не все аргументы вычислятся. if — это специальная форма, а не функция. Причём чуть раньше set! правильно не называется функцией. :)

Про стиль уже сказали, но вот точнейшее описание со всеми подробностями: mumble.net/~campbell/scheme/style.txt Вы правильно обращаетесь со скобками чтобы не пугать народ, но писать так не стоит.
Большое спасибо за замечания. let* взял из гимпового туториала (ссылка в посте), там другого и не упоминается.
Про if — точно, сейчас поправлю одно слово.
Стиль взят опять же из гимпового туториала. Да, для снижения порога погружения.

Собственно, всё дело в том, что статья про Script-fu в GIMP, а не про Scheme как самостоятельный язык. Для изучения последнего эта статья — далеко не лучший выбор, тогда как для первого вполне сносна.
Да, пожалуй, добавлю это замечание в заключение.
Для пакетной обработки также можно взять плагин для GIMP — BIMP (Batch Image Manipulation), скачать BIMP можно с сайта GIMP
проверен, мин нет :-) не надо писать и отлаживать, удобный интерфейс
Sign up to leave a comment.

Articles

Change theme settings