LINUX.ORG.RU
ФорумTalks

В GNU Guile 3.0.10 отказались от скобок

 , ,


0

2

openet

Из интересного, скобки больше не нужны, по крайней мере большая часть, было:

(define (factorial n)
       (if (zero? n)
          1
          (* n (factorial (- n 1)))))

   (display (factorial 5))
   (newline)

стало:

   define : factorial n
     if : zero? n
         . 1
         * n : factorial (- n 1)
   display : factorial 5 
   newline

Вызывается пояснительная бригада, почему так. ИМХО стало читабельней хоть и похоже на питон.

★★★★★

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

Открой ссылку в OpenNet, в Scheme каждый делает свой синтаксис https://srfi.schemers.org/srfi-110/srfi-110.html https://srfi.schemers.org/srfi-49/srfi-49.html https://srfi.schemers.org/srfi-110/srfi-110.html

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 2)
Ответ на: комментарий от Ygor

GNU Guile — реализация языка программирования Scheme, рекомендованная в качестве скриптового языка, встраиваемого в программные продукты проекта GNU

Мы надеемся, что в конечном итоге реализация Elisp от Guile станет достаточно хорошей, чтобы заменить собственную реализацию Elisp в Emacs

MOPKOBKA ★★★★★
()
Ответ на: комментарий от MOPKOBKA

Вот чем их SRFI-110 не устроило? NIH-синдром?

Вот так было бы:

define factorial(n)
  if zero?(n)
    1
    {n * factorial{n - 1}}
  display factorial(5) 
  newline
monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)

вот тут это не стало читабельней ни для лисперов ни для питонистов..

тут маркетоиды одержали вверх :-)

хотя guile в принципе можно переписать без скобок вообще. Это возможность есть основа-основ, отчего и весь сыр-бор..

Но не так как исполнено

MKuznetsov ★★★★★
()
Ответ на: комментарий от cobold

Я хоть питонист, но это больше на coffescript извращение смахивает.

Shadow ★★★★★
()

Мде. Фича синтаксиса лиспа - легко видеть однозначное представление AST по коду. Меняя синтаксис в такой формат - от этой идеи отходят. Те AST кода становится неким производным артефактом. ИМХО, идея бред - тогда проще взять какой-нибудь JS и писать на нем.

Norgat ★★★★★
()
Ответ на: комментарий от Norgat

Мде. Фича синтаксиса лиспа - легко видеть однозначное представление AST по коду. Меняя синтаксис в такой формат - от этой идеи отходят.

Ничуть. Просто читай «:» как «начало узла AST». Вот только читабельности по сравнению со скобками это не добавило.

Условно, раньше было

(* (+ a b)
   (+ c (/ d 2))
   (- e f))

Теперь

* : + a b 
    + c : / d 2
    - e f
monk ★★★★★
()
Ответ на: комментарий от MOPKOBKA

Это достаточная характеристика, чтобы не прикасаться ко всему этому длинной палкой. Почему, а самое главное зачем эти люди пытаются внедрить lisp и его клоны?!

Ygor ★★★★★
() автор топика
Ответ на: комментарий от monk

Судя по всему : - это префиксный оператор вызова функции. В точности как $ в Haskell. Ну или даже funcall в Common Lisp, только без скобок.

Gentooshnik ★★★★★
()

Ух, я уж детство с Coffee Script вспомнил.

Gentooshnik ★★★★★
()
Ответ на: комментарий от monk

ИМХО, это первый шаг по пути использования сахара. Сначала уберут скобки и заменят их на :. Потом еще сахарку добавят для удобства чтения, шаг за шагом. На выходе получим цитирование как в F#, где уровень абстракции макросов будет как в Nemerle, где, по факту, аж 2 отдельных языка получаем.

Лично мне этот путь не интересен и я считаю его порочным. Так как, через время, мы получим еще один язык с обилием сахара, а они уже есть. Мое личное фи данному подходу, не более того.

Norgat ★★★★★
()
Ответ на: комментарий от Norgat

проще взять какой-нибудь JS и писать на нем

Упаси Господь Боженька. Лучше на классической схемке со скобками.

Hertz ★★★★★
()

Я тебя удивлю, но изначально вообще предполагалось, что скобочки в лиспе только для данных будут использоваться

buddhist ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)