Анна
ну библиотечные надо курнуть просто
Анна
я щас на могу пока
Ayrat
не, в библиотечных там уже stream-map, stream-take и пр реализованы
Ayrat
я думал их надо самому сделать. непонятно что стримы сами тоже надо было самому делать
Анна
хотя не знаю, может запретить надо либу юзать 🤔
Ayrat
в либе уже почти всё готово, да
Анна
так не интересно
Ayrat
(define (stream-map f s) (if (stream-empty? s) empty-stream (stream-cons (f (stream-first s)) (stream-map f (stream-rest s)))))
Ayrat
т.е. вот так я stream-map сделал
Ayrat
stream-empty? есть empty-stream есть stream-rest и пр тоже есть
Ayrat
:D
Ayrat
окей, их надо короче все руками сделать заново. Понял тебя
Анна
окей, их надо короче все руками сделать заново. Понял тебя
я вот ещё не придумала, зафорсить написание руками или оставить лазейку 🤔
Roman
пора чатик racket-flood заводить
Vasily
Это пройдет
Ayrat
если оставить лазейку, то например задача выше: (1) Напишите функцию stream-for-n-steps, которая принимает стрим s и число n, и возвращает список из первых n значений, порождённых стримом. Считайте, что n неотрицательное. делается так: (define (stream-for-n-steps-fake s n) (stream->list (stream-take s n)))
Vasily
Это Айрат просто начинает по родине тосковать
Анна
Ayrat мы всех достали 😭
Roman
Ayrat мы всех достали 😭
а скока там задачек/лаб осталось?
Vasily
В личку не ходите, а то мало ли что
Ayrat
я к тому что с лазейкой в виде стд либы racket/stream там бОльшая часть задач тривиально решается библовскими функциями
Анна
Да, пусть страдают
Анна
идея была в том, чтобы заставить их вывернуть мозг наизнанку
Ayrat
Мда)
Ayrat
тогда скажи, как объявить стрим? я не понял как вернуть лейзи функцию в ракете
Анна
Может правда в личку 🤔
Vasily
Ненене
Vasily
Лично мне очень интересно
Éminence grise
Согласен с предыдущим оратором
Ayrat
А, я могу ж в лямбду завернуть начало и хвост
Анна
Ну вот пример - стрим натуральных чисел: (define nats (letrec ([f (lambda (x) (cons x (lambda () (f (+ x 1)))))]) (lambda () (f 1)))) Внутри спрятана функция, которая каждый раз возвращает пару из значения и новой функции (которая как рекурсия, только наоборот). А наружу мы возвращаем функцию, которая начинает всю эту балалайку 🤔
Ayrat
и начало в лямбду, и хвост
Анна
А вообще чтобы сделать любое выражение ленивым, надо просто в лямбду его завернуть, а чтобы зафорсить вычисление - вызвать эту лямбду. На этой теме вся ленивость строится в языке с eager семантикой
Ayrat
это логично, просто мне типы суммы мозг сломали и я в чистых лямбдах думать перестал
Ayrat
как будто я когда-то начинал)))
Roman
@AnutaU Ayrat а почему лисп кстати? Почему не раст, например?
Ayrat
да не, раст голову не ломает
Ayrat
просто поэтому
Roman
раст скучно?
Roman
хм, там же вроде концепции, не характерные для других языков
Roman
типа borrowing
Roman
ну или я чего-то не знаю
Éminence grise
Ну не скажи Rust ломает.
Анна
@AnutaU Ayrat а почему лисп кстати? Почему не раст, например?
Ну Лисп это просто квинтэссенция крутых штук, которые лезут в современные языки в наши дни
Ayrat
ну линейные типы да, но это не уникальная концепция, шаред поинтер, уник поинтер, вот это вот всё
Анна
при этом он максимально простой и концентрированный. А ещё это lingua franca для теории языков программирования
Roman
я пока не могу пробиться через неприязнь к скобкам. Жутко нечитабельно имхо
Анна
каких например?
Те же лябды с замыканиями уже при мне стали появляться в мейнстриме
Éminence grise
А вообще ваш разговор про стримы в лиспе натолкнул меня на задачку - как семантически тоже реализовать на FSharp. Очень интересно получается.
Анна
я пока не могу пробиться через неприязнь к скобкам. Жутко нечитабельно имхо
ну сначала ты страдаешь. А потом внезапно перестаёшь и становится по кайфу на нём кодить. Ну крупное я не пробовала конечно писать, но небольшие задачки порешать и почесать мозг - это же чистый кайф
Roman
а его в промышленном смысле кто-нить использует ща?
Roman
там тоже скобочки?)
Анна
а его в промышленном смысле кто-нить использует ща?
Racket слышала, что используют, но это видимо единичные случаи. А closure да, очень даже
Ayrat
там тоже скобочки?)
https://gist.github.com/jasongilman/3671146
Анна
там тоже скобочки?)
я вчера даже картинку про скобочки закидывала 😂
Анна
Roman
а, эт я видел. Но она про лисп, а не кожу!
Анна
Roman
но я уже понял ответ
Крылатый
Уй ужас
Анна
Я в каком-то внезапном порыве зимой купила себе книжку по кложе. Потом порыв прервался 🤷‍♀️
Roman
на какой странице?
Анна
Я в нескольких местах её читала, не только начало.
Анна
потом стало не до Кложи внезапно
Крылатый
Я в каком-то внезапном порыве зимой купила себе книжку по кложе. Потом порыв прервался 🤷‍♀️
А у меня так и не прочитаная книжка по моделированию термодинамики на суперкомпах((
Крылатый
Там есть матан, который я не шарю((
Анна
Не, все непрочитанные книжки я пожалуй не буду вспоминать
Анна
вот щас времечко освободится и ботанить можно будет
Анна
sicp я у товарища одалживала и немного читала, но всё не осиливала
Анна
вот то, что Ayrat сейчас решает, частично под SICP придумано
Ayrat
Это scheme?
ракет
Igor
ракет
А типы там выводятся или надо явно писать?