Анна
и жуки студенты ничего не сказали
Ayrat
да не, збс же. Прям уаще
Ayrat
с нуля ж понятно, поставил и поехал
Анна
ну практические так и задуманы были, чтобы перед лекциями их выдавать для первичной подготовки мозгов
Анна
по OCaml тоже есть практические, но они вообще в скетчах, онлайн код фигачишь и сразу запускаешь
Анна
на гитхаб не перенесла пока для истории
Ayrat
перехожу к задачам под pr3, потом пойду лабу мучать
Анна
Vasily
Я вот мало чо понял
Vasily
[#t (+ (sum-cond (car xs)) (sum-cond (cdr xs)))]
Vasily
Вот енто неясно
Vasily
И шо такое car и cdr
Romɑn
машинка и кадр
Anonymous
это считай head и tail
Vasily
А, ясно
Vasily
Но синтаксис НИПАНЯТНЫЙ
Anonymous
только car не удаляет элемент из листа, просто говорит чё там в хэде
Ayrat
@AnutaU воспользуюсь твоим присутствием
была задача
Напишите функцию sequence, которая принимает аргументы low, high (целые числа) и step (положительное число). Функция sequence должна возвращать список чисел от low до high с шагом step.
я её так решил:
(define (inner low high step result)
(if (> low high)
result
(inner (+ low step) high step (append result (list low)))))
(define (sequence low high step)
(inner low high step null))
(sequence 1 10 2)
работает правильно.
Вопрос - в одну функцию её можно записать?
Анна
Ayrat
Ayrat
они ж наоборот пойдут, с конца
Vasily
Юные шаловливые любители лиспа
Ayrat
(seq 1 10 1)
вернёт
10, 9, ... 1
Анна
Ayrat
А вот вопрос, можно ли закложурить как-то :D т.е. я сделал в 2 функции, вложить как-то можно?
Анна
Вложить можно
Анна
let и letrec тебе в помощь
Ayrat
ага, ща погуглю, спасибо
Анна
(define (sequence low high stride)
(if (> low high)
null
(cons low (sequence (+ low stride) high stride)))
)
Анна
и ничо вроде не наоборот
Анна
только не хвостовое
Ayrat
да, точно
Ayrat
так можно, но не хвостовое
Vasily
Мэджик
Ayrat
эт я понимаю.
Vasily
А then else не предусмотрен?
Ayrat
ну там типа
(if (bool expr) (then-expr) (else-expr))
Ayrat
зачем ключевые слова?)
Vasily
А если else if?
Vasily
Скобочками?
Vasily
А, ясно
Vasily
А почему в cond скобки квадратные?
Анна
вложенные if тоже можно
Анна
Ayrat
Анна
круглые и квадратные взаимозаменяемые
Ayrat
потому что его можно дать очень быстро если только круглые юхать
Анна
@vshapenko у меня по-моему на гитхабе это всё написано :)
Ayrat
@AnutaU а замыкания работают?
Vasily
Ну до гитхаба я пока не добрался, поем твоего мозга тут
Анна
Ayrat
должны ж
Ayrat
ну да, это ж фп, куда без замыканий
Ayrat
а это перевод?)
Ayrat
@fillpackart, ты что-то скрываешь
Vasily
Кстати да
Vasily
Что-то похожее было
Ayrat
Ну всё, на вилы его
Ayrat
плагиатор
Vasily
НА КОСТЕР ВЕДЬМУ
Ayrat
поди сам себя перевёл
Ayrat
фу
Ayrat
есть мнение, что оригинал на русском)
Анна
Я ксати свой курс частично стырила и не скрываю. А то мало ли 🤷♀️
Vladislav
Анна
Ну тут за перевод статьи гнобят :)
Vasily
За перевод ваще на вилы
Vasily
А курс, ну что курс. Ну с торрента скачала небось
Анна
Ну я по мере того, как умнею, его меняю
Vasily
Буду знать
Ayrat
@AnutaU спасай, я чот не понимаю
Напишите функцию string-append-map, которая принимает список строк xs и строку suffix, и возвращает список новых строк, присоединив к каждой строке исходного списка строку suffix (без пробелов между строкой и суффиксом). Используйте библиотечные функции map и string-append.
(define (string-append-map xs suffix)
(define (app suffix str)
(string-append str suffix))
(map (app suffix) xs))
(string-append-map (list "1" "2" "3") "a")
ругается на arity mismatch при вызове (app suffix)
я ж думал я так хитро закарировал, там же в (app) объявлено два аргумента
Анна
ну ты не закаррировал
Ayrat
хм
Ayrat
а мне казалось да!
Анна
да и там же на месте можно лямбду определить
Анна
прямо в map и передать
Ayrat
кстати, да