Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Определение функций в ЛИСПе
В языке ЛИСП предусмотрено более чем триста встроенных функций, подобных базовым. Но независимо от их количества всегда возникает необходимость в новых функциях, определенных пользователем. Назначить имя и определить новую функцию можно с помощью специальной формы DEFUN (define function). Конструкция DEFUN имеет следующую структуру (DEFUN < имя функции> (список формальных параметров) < тело функции> ) Тело функции состоит из одного или нескольких последовательных s-выражений (заданий). Описание функции должно всегда предшествовать обращению к ней (вызову). Так, функция, которая проверяет, является ли данный объект пустым списком, может быть определена так (DEFUN NULL (obj) (EQL obj NIL) ) Ее вызов имеет вид (NULL ‘(a b c d)) F (NULL (CDR ‘(f))) T Тело функции состоит из последовательности заданий. Задания могут быть двух типов: простые и условные. Любое задание берется в круглые скобки и может рассматриваться как список выражений, которые надо проинтерпретировать. Если задание является атомом или его первый элемент является атомом, то такая задача называется простой. Например, (CONS 'NR LST). Если первый элемент списка, который описывает задание, не является атомом, то такое задание называется условным. Например, ((ATOM lst) (CONS expr lst)). В условном задании первый элемент списка обязательно является предикатом. Если значение предикату NIL, то значение задания становится равным NIL и Лисп переходит к выполнению следующего задания. Если предикат возвращает не NIL, происходит выполнение хвоста списка задания, а другие задания игнорируются. Если предикат возвращает Т, а хвост задания пустой, то результатом всей функции будет T. Например, (defun max-min (l) ((atom l) 0) (setq a (max l)) (setq b (min l)) (- a b) )
|