Size: a a a

Сообщество Scheme

2020 January 26

AZ

Aydar Zarifullin in Сообщество Scheme
Racket Cade Game Engine

The r-cade package is a very simple game engine for the Racket programming language

https://github.com/massung/r-cade
источник
2020 February 01

b⛅

bouncepaw ⛅ in Сообщество Scheme
Дано: функция, которая может рекурсировать.

В зависимости от контекста, мне нужно, чтобы она рекурнула ни разу, либо рекурила, пока хочет. Знаю, что надо копать в сторону комбинаторов. В сторону какого?
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
а, ну можно это сделать прямолинейно. Просто передать аргумент: рекурить единожды или много раз... Скучно-то как
источник
2020 February 05

b⛅

bouncepaw ⛅ in Сообщество Scheme
Есть список (list 1 2 3). Как получить dotted-list изящно?
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
(1 2 . 3)
источник

A

Aragaer in Сообщество Scheme
в смысле без последнего nil?
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
Aragaer
в смысле без последнего nil?
да
источник

A

Aragaer in Сообщество Scheme
ну .. наверно надо сначала добраться до конца. После чего глядя на (2 . (3 . nil)) сделать из него (2 . 3)
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
Aragaer
ну .. наверно надо сначала добраться до конца. После чего глядя на (2 . (3 . nil)) сделать из него (2 . 3)
это же неизящно
источник

A

Aragaer in Сообщество Scheme
то есть надо найти ту cons-пару, в которую вложена та, в которой nil. То есть cddr равен nil. Тогда надо выставить cdr равным cdar
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
Aragaer
то есть надо найти ту cons-пару, в которую вложена та, в которой nil. То есть cddr равен nil. Тогда надо выставить cdr равным cdar
спс, так и сделаю
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
хотя я всё ещё в поиске изящного желания!
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
изящное — такое, которое вызовет экстаз
источник

A

Aragaer in Сообщество Scheme
http://clhs.lisp.se/Body/f_last.htm - ну вот (last my_list 2) это как раз вернет нужную ячейку
источник

A

Aragaer in Сообщество Scheme
а, стоп, я разные лиспы путаю
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
(define (proper->dotted lst)
 (cond
   [(eq? '() (cddr lst))
    (cons (car lst) (cadr lst))]
   [else
     (cons (car lst) (proper->dotted (cdr lst)))]))
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
Aragaer
то есть надо найти ту cons-пару, в которую вложена та, в которой nil. То есть cddr равен nil. Тогда надо выставить cdr равным cdar
портировал это
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
не покрывает случай списков длиной 1 :)
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
наверное, для них надо просто car вернуть
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
а нет, просто их надо вернуть
источник