Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

несколько предложений по тексту #134

Merged
merged 1 commit into from
Mar 4, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ name: Объявление и вызов функций
theory: |
Функции в Clojure обладают следующими свойствами:

* У функций нет имен. Во многих языках такие функции также существуют и называются анонимными функциями или лямбда-функциями.
* Функции являются объектами первого рода. Их можно присваивать переменным, передавать в другие функции и возвращать из функций.
* У функций нет имен. Во многих языках такие функции также существуют и называются анонимными функциями.
* Функции являются объектами первого рода (или класса). Это значит, что их можно присваивать переменным, передавать в другие функции и возвращать из функций.

```clojure
; определение функции, вычисляющей сумму двух чисел
Expand All @@ -32,7 +32,7 @@ theory: |
(fn [num1 num2] (/ (+ num1 num2) 2))
```

Определение функции само по себе мало полезно, особенно если мы захотим использовать её несколько раз. Для повторного использования нужно создать объявление, в которое запишется функция. Такое возможно благодаря тому, что форма определения функции — это выражение, возвращающее саму функцию.
Определение функции само по себе мало полезно, особенно если мы захотим использовать её несколько раз. Для повторного использования нужно создать объявление, в которое запишется функция. Такое возможно благодаря тому, что форма определения функции — это выражение, возвращающее саму функцию. Иными словами, мы просто записываем в наш идентификатор ссылку на функцию.

```clojure
(def cube (fn [n] (* n n n)))
Expand All @@ -45,7 +45,7 @@ theory: |
(cube 3) ; 27
```

Помимо связи анонимной функции с объявлением существует упрощенный вариант объявления функции и связи ее с идентификатором. Делается это с помощью формы `defn`, которая делает процесс объявления функции удобнее (в таком способе объявления возможно даже написать документацию на объявляемую функцию!).
Помимо связи анонимной функции с объявлением существует упрощенный вариант объявления функции и ее связывания с идентификатором. Делается это с помощью формы `defn`, которая упрощает процесс объявления функции (в таком способе объявления возможно даже написать документацию на объявляемую функцию!).

```clojure
(defn cube [n] (* n n n))
Expand Down