/
Программирование
/
Курс Clojure
/

Сокращенный синтаксис создания функции

Clojure: Сокращенный синтаксис создания функции

Создание функций - настолько частая операция, что в Clojure была добавлена сокращенная версия определения (с одновременным объявлением) функции с помощью defn. Возьмем для примера определение функции возведения в квадрат:

(def square (fn [n] (* n n)))

А теперь посмотрим сокращенную версию этого же определения:

(defn square [n] (* n n))
(square 3) ; 9

Первое что бросается в глаза — отсутствие слова fn. Вместо него, после defn указывается имя функции, после имени - список параметров. Затем идет тело функции. Объявленная выше функция возведения в квадрат принимает один аргумент — n. Пример объявления функции с двумя аргументами:

(defn sum [x y] (+ x y))
(sum 3 5) ; 8

Помимо определения сигнатуры функции, мы можем тут же использовать деструктуризацию (destructuring). Пример функции суммирования, в которую передается массив из двух элементов:

(defn sum [[x y]] (+ x y))
(sum [3 5]) ; 8
(sum [10 10]) ; 20

Задание

Создайте функцию с именем sum-of-squares (используя короткий синтаксис), которая находит сумму квадратов двух чисел.

(sum-of-squares 2 3) ; 13

Полезное

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

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