Logo
Книга для начинающих
ВходРегистрация
/
Программирование
/
Курс Clojure
/

Префиксная нотация

Clojure: Префиксная нотация

В популярных языках программирования, вызов функции выглядит так f(arg1, arg2, arg3), однако в Clojure, как и в других лиспо-подобных языках, используется префиксная нотация. С непривычки, такой способ записи кажется неуклюжим, однако при вложенном вызове становится очевидным удобство такого подхода. Вложенный вызов нескольких функций выглядит следующим образом:

(+
  1
  (- 2 3)
  (* 4 5 6)
  (+ 7 8 9 10 11 12))

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

(+ 1 2 3)   ; => 6
(+ 1, 2, 3) ; => 6
(+ (+ 1, 2), (+ 1, 2)) ; => 6

Задание

Выведите в стандартный поток вывода (с помощью функции println) следующее выражение: 1 + 10 - 2 * 7

Полезное

  • Префиксная нотация

  • Стандартный линтер и форматтер Clojure кода

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
/
Программирование
/
Курс Clojure
/

Префиксная нотация

Clojure: Префиксная нотация

В популярных языках программирования, вызов функции выглядит так f(arg1, arg2, arg3), однако в Clojure, как и в других лиспо-подобных языках, используется префиксная нотация. С непривычки, такой способ записи кажется неуклюжим, однако при вложенном вызове становится очевидным удобство такого подхода. Вложенный вызов нескольких функций выглядит следующим образом:

(+
  1
  (- 2 3)
  (* 4 5 6)
  (+ 7 8 9 10 11 12))

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

(+ 1 2 3)   ; => 6
(+ 1, 2, 3) ; => 6
(+ (+ 1, 2), (+ 1, 2)) ; => 6

Задание

Выведите в стандартный поток вывода (с помощью функции println) следующее выражение: 1 + 10 - 2 * 7

Полезное

  • Префиксная нотация

  • Стандартный линтер и форматтер Clojure кода

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
← ПредыдущийСледующий →
← ПредыдущийСледующий →
← ПредыдущийСледующий →

Ваше упражнение проверяется по этим тестам

(ns prefix-notation-test
  (:require [test-helper :refer [assert-output]]))

(assert-output "-3")
← ПредыдущийСледующий →

Решение учителя откроется через:

20:00

waiting_clock
← ПредыдущийСледующий →