О вводе строки, и выводе её модификации - Lisp

  1. Мне просто нужен код делающий следующее: При начале работы выводится приглашение (например Vvedite slovo:) Я ввожу Slenon, нажимаю Enter - выводится Privet, Slenon! (Common LISP)


textual

Код к задаче: «О вводе строки, и выводе её модификации - Lisp»

(defun greeting (name)
  (format nil "Привет, ~A!~%" (cond ((null name) "чувак")
                                    ((zerop (length reply)) "никто")
                                    (t reply))))
 
(defun hello ()
  (format *query-io* "~&Как вас зовут?~%")
  (finish-output *query-io*)
  (let ((reply (read-line *query-io*)))
    (write-line (greeting reply) *query-io*))
  (finish-output *query-io*))

СДЕЛАЙТЕ РЕПОСТ

6   голосов, оценка 3.833 из 5



Похожие ответы
  1. После года самостоятельного изучения Python в качестве первого и основного ЯП, пришел я в университет в магистратуру, где в качестве функционального ЯП предлагается писать задачи на Scheme. Привыкнув писать по императивной парадигме, спотыкаться начал практически сразу же. Например. Требуется написать программу, которая вычисляет день недели по дате. Пусть процедура принимает год-месяц-день и возвращает числа от 0 (понедельник) до 6 (воскресенье). Покопавшись по вопросу реализации подобного алгоритма, набрёл на интересное решение на Python:Python1 2 3 4 5 6 7 def whatDay(day, month, year):     days = ["пн","вт","ср","чт","пт","сб","вс"]     a = (14 - month) // 12     y = year - a     m = month+12 * a-2     result = ((7000 + (day + y + y//4 - y//100 + y//400 + (31*m) // 12)) % 7) - 1     return days[result]Не получается перестроить данное решение под, собственно, Scheme. Пробовал так:

  1. Напишите программу, которая строит СДНФ и СКНФ для заданной булевой формулы. Формула может быть задана прямо в исходном тексте программы.

  1. Турист в первый день прошел 30 км, на каждый следующий день прошел на 3 км меньше, чем в предыдущий. Какое расстояние он прошел за 11 дней?

  1. Не получается написать функцию, которая принимает на вход список, и преобразует его следующим образом: после каждого неотрицательного элемента добавляет звездочку. Например: исходный список: (0 b a -2 4) преобразованный список: ((0 *) b a -2 (4 *)) Помогите, пожалуйста!Добавлено через 22 минуты Ошибку выдает компилятор: sh-4.4$ clisp main.lisp *** - >: NIL is not a real number

  1. В SICP сказанно что после предиката в cond может быть последовательность выражений, а в if - только одно. Я собственно не пойму, что за "последовательность выражений"?

  1. 1. Например "3497" в "7943" ... 2. Например "4" в число 4 ...

  1. Буду очень благодарна и признательна если кто в этом разбирается и поможет. Необходимо на Лиспе написать программу вычисления дискриминанта квадратного уравнения. Свои наброски есть, но не уверена что правильно сделала.

  1. Добрый вечер всем! Подскажите как через цикл do организовать нахождение произведения внутри списка. Т.е (1 2 3 (3 6) 2 1 (2 4) 2 ) - такого например. Нужно через do реализовать, как не могу понять, точнее не могу понять как доставать элементы из списка и производить над ними действия. Писал с помощью dolist, но он не учитывает вложенные списки. Сказали через do легче будет реализовать, посему прошу помощи. Вот пример реализации через dolist: