1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zzhicanfly-juner_os

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
grammar_zh.md 4.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 02:55 ec89fe2

Это разновидность базового типа. Используется для представления литералов с помощью фигурных скобок {}.

key может быть представлен двумя способами: строкой или ключевым словом. Ключевое слово — это строка, начинающаяся с двоеточия :.

Следующие две формы могут представлять собой map:

  1. {"a" 1 "b" 2}
  2. {:a 1 :b 2}

hash-map: принимает чётное количество параметров и возвращает новый mal хеш-таблицу, где ключи — это параметры с нечётными позициями, а их значения соответствуют параметрам с чётными позициями. По сути, это функция в форме буквального синтаксиса {}reader.

map?: принимает один параметр. Если параметр является хеш-таблицей, то возвращает true (значение true в mal), иначе возвращает false (значение false в mal).

assoc: принимает одну хеш-таблицу в качестве первого параметра, остальные параметры — это пары ключ/значение, которые необходимо связать (объединить) с хеш-таблицей. Обратите внимание, что исходная хеш-таблица не изменяется (помните, что значения в mal неизменяемы), а новая хеш-таблица, полученная путём объединения ключей/значений из исходной таблицы и параметров, возвращается в качестве результата.

dissoc: принимает одну хеш-таблицу в качестве первого параметра, остальные параметры — это ключи, которые нужно удалить из хеш-таблицы. Как и в предыдущем случае, исходная таблица остаётся неизменной, но возвращается новая таблица с удалением указанных ключей. Ключи, которых нет в исходной таблице, игнорируются.

get: принимает хеш-таблицу и ключ, возвращает значение из хеш-таблицы, соответствующее этому ключу. Если ключа нет в таблице, возвращает nil.

contains?: принимает хеш-таблицу и ключ. Возвращает true (значение true в mal), если ключ присутствует в таблице, иначе возвращает false (значение false в mal).

keys: принимает хеш-таблицу и возвращает список (значение списка в mal), содержащий все ключи из таблицы.

vals: принимает хеш-таблицу и возвращает список (значение списка в mal), содержащий все значения из таблицы.

Обратите внимание, что все вышеперечисленные методы не имеют побочных эффектов, то есть не изменяют исходные значения. Если вы хотите это сделать, рекомендуется использовать atom или повторно def!

gensym: генерирует новый символ в системе

(gensym)
=> каждый раз разное!

cond: множественные условия

Нечётное число параметров: один — условие, другой — возвращаемое значение.

(def! ten-test (lambda [data]
                (cond
                    (> data 10) 1
                    (= data 10) 0
                    (< data 10) -1)))

(ten-test 15)
=> 1

ls: выводит список файлов и папок в текущем каталоге

(ls)
=> (. .. mal)

(ls "mal")
=> (. .. hello.mal)

read-file: считывает содержимое файла в строку

(read-file "mal/hello.mal")
=> "(+ 1 1)"

load-file: читает файл в формате mal и загружает его содержимое. Возвращает nil

Файл a.mal:

(def! test (lambda [x] (prn x)))
(load-file "a.mal")
=> nil
(test "x")
=> "x"
=> nil

TODO: другие основные функции

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/zzhicanfly-juner_os.git
git@api.gitlife.ru:oschina-mirror/zzhicanfly-juner_os.git
oschina-mirror
zzhicanfly-juner_os
zzhicanfly-juner_os
master