2019-02-13 12:09:35 +01:00
|
|
|
|
(опиши (саар џ) (сар (сар џ)))
|
|
|
|
|
(опиши (садр џ) (сар (сдр џ)))
|
|
|
|
|
(опиши (сдар џ) (сдр (сар џ)))
|
|
|
|
|
(опиши (сддр џ) (сдр (сдр џ)))
|
2019-02-18 23:20:44 +01:00
|
|
|
|
(опиши (сааар џ) (сар (сар (сар џ))))
|
|
|
|
|
(опиши (саадр џ) (сар (сар (сдр џ))))
|
|
|
|
|
(опиши (садар џ) (сар (сдр (сар џ))))
|
|
|
|
|
(опиши (саддр џ) (сар (сдр (сдр џ))))
|
|
|
|
|
(опиши (сдаар џ) (сдр (сар (сар џ))))
|
|
|
|
|
(опиши (сдадр џ) (сдр (сар (сдр џ))))
|
|
|
|
|
(опиши (сддар џ) (сдр (сдр (сар џ))))
|
|
|
|
|
(опиши (сдддр џ) (сдр (сдр (сдр џ))))
|
|
|
|
|
|
|
|
|
|
(опиши нил ())
|
2019-02-13 12:09:35 +01:00
|
|
|
|
|
2019-02-19 17:10:25 +01:00
|
|
|
|
(опиши (једнаки? џ ж)
|
|
|
|
|
(ако (и (конс? џ) (конс? ж))
|
|
|
|
|
(и (једнаки? (сар џ) (сар ж)) (једнаки? (сдр џ) (сдр ж)))
|
|
|
|
|
(јед? џ ж)))
|
|
|
|
|
|
2019-02-19 09:49:55 +01:00
|
|
|
|
(опиши (новиред) (прикажи #\новиред))
|
|
|
|
|
|
2019-02-13 12:09:35 +01:00
|
|
|
|
(опиши (није предикат)
|
2019-02-10 22:21:20 +01:00
|
|
|
|
(ако предикат #л #и))
|
2019-02-11 11:21:30 +01:00
|
|
|
|
|
2019-02-13 12:09:35 +01:00
|
|
|
|
(опиши (листа . арг) арг)
|
|
|
|
|
|
2019-02-18 23:20:44 +01:00
|
|
|
|
(опиши (дужина листа)
|
|
|
|
|
(опиши (дужина-пом листа акумулатор)
|
|
|
|
|
(ако (нил? листа)
|
|
|
|
|
акумулатор
|
|
|
|
|
(дужина-пом (сдр листа) (+ акумулатор 1))))
|
|
|
|
|
(ако (није (листа? листа))
|
|
|
|
|
(баци "Неправилан тип аргумента прослеђен функцији")
|
|
|
|
|
(дужина-пом листа 0)))
|
|
|
|
|
|
2019-02-13 12:09:35 +01:00
|
|
|
|
(опиши-складњу (и . предикати)
|
|
|
|
|
(ако (нил? предикати) #и
|
|
|
|
|
(ако (нил? (сдр предикати))
|
|
|
|
|
(сар предикати)
|
|
|
|
|
(листа 'ако (сар предикати)
|
|
|
|
|
(примени и (сдр предикати))
|
|
|
|
|
#л))))
|
2019-02-11 11:21:30 +01:00
|
|
|
|
|
2019-02-13 12:09:35 +01:00
|
|
|
|
(опиши-складњу (или . предикати)
|
|
|
|
|
(ако (нил? предикати) #л
|
|
|
|
|
(ако (нил? (сдр предикати))
|
|
|
|
|
(сар предикати)
|
2019-03-03 02:52:40 +01:00
|
|
|
|
(листа 'почни
|
|
|
|
|
(листа 'опиши '|ИЛИ НЕГАТИВНА ГРАНА| (сар предикати))
|
|
|
|
|
(листа 'ако (листа 'није '|ИЛИ НЕГАТИВНА ГРАНА|)
|
|
|
|
|
(примени или (сдр предикати))
|
|
|
|
|
'|ИЛИ НЕГАТИВНА ГРАНА|)))))
|
2019-02-11 11:21:30 +01:00
|
|
|
|
|
2019-02-18 23:20:44 +01:00
|
|
|
|
(опиши-складњу (услов . клаузе)
|
|
|
|
|
(ако (= (дужина клаузе) 0)
|
|
|
|
|
(баци "Конс позван са празном листом клауза")
|
|
|
|
|
(ако (није (и (конс? (сар клаузе)) (листа? (сар клаузе))))
|
|
|
|
|
(баци "Неправилна конс клауза")
|
|
|
|
|
(листа 'ако (саар клаузе)
|
|
|
|
|
(ако (нил? (сдар клаузе))
|
|
|
|
|
(саар клаузе)
|
2019-02-21 21:41:46 +01:00
|
|
|
|
(конс 'почни (сдар клаузе)))
|
2019-02-18 23:20:44 +01:00
|
|
|
|
(ако (нил? (сдр клаузе))
|
|
|
|
|
()
|
|
|
|
|
(примени услов (сдр клаузе)))))))
|
2019-02-19 09:49:55 +01:00
|
|
|
|
|
2019-02-21 21:41:46 +01:00
|
|
|
|
(опиши (мапирај процедура листа)
|
|
|
|
|
(услов
|
|
|
|
|
((није (листа? листа)) (баци "Функција се не може мапирати\
|
|
|
|
|
на не-листу"))
|
|
|
|
|
((није (процедура? процедура)) (баци "Не може се мапирати\
|
|
|
|
|
не-функција"))
|
|
|
|
|
((нил? листа) ())
|
|
|
|
|
(#и (конс
|
|
|
|
|
(процедура (сар листа))
|
|
|
|
|
(мапирај процедура (сдр листа))))))
|
|
|
|
|
|
|
|
|
|
(опиши-складњу (нека листа-променљивих . тело)
|
|
|
|
|
(опиши (валидна-нека-листа-променљивих листа)
|
|
|
|
|
(опиши (дужине2 листа)
|
|
|
|
|
(= (дужина листа) 2))
|
|
|
|
|
(примени и (мапирај дужине2 листа)))
|
|
|
|
|
(ако (није (валидна-нека-листа-променљивих листа-променљивих))
|
|
|
|
|
(баци "Невалидна листа променљивих за \"нека\" процедуру")
|
|
|
|
|
(почни
|
|
|
|
|
(опиши имена (мапирај сар листа-променљивих))
|
|
|
|
|
(опиши вредности (мапирај садр листа-променљивих))
|
|
|
|
|
(опиши ламбда-израз (надовежи (листа 'ламбда имена) тело))
|
|
|
|
|
(конс ламбда-израз вредности))))
|
|
|
|
|
|
2019-02-26 13:50:00 +01:00
|
|
|
|
(опиши (макс . аргументи)
|
|
|
|
|
(опиши (листа-бројева? листа)
|
|
|
|
|
(примени и (мапирај број? листа)))
|
|
|
|
|
(услов
|
|
|
|
|
((= 0 (дужина аргументи))
|
|
|
|
|
(баци "Функција \"макс\" захтева барем један\
|
|
|
|
|
аргумент"))
|
|
|
|
|
((није (број? (сар аргументи))) (баци "Аргументи дати функцији\
|
|
|
|
|
\"макс\" нису бројеви"))
|
|
|
|
|
((и (= 1 (дужина аргументи)) (број? (сар аргументи)))
|
|
|
|
|
(сар аргументи))
|
|
|
|
|
(#и
|
|
|
|
|
(опиши остатак (примени макс (сдр аргументи)))
|
|
|
|
|
(ако (> остатак (сар аргументи))
|
|
|
|
|
остатак (сар аргументи)))))
|
|
|
|
|
|
|
|
|
|
(опиши (мин . аргументи)
|
|
|
|
|
(опиши (листа-бројева? листа)
|
|
|
|
|
(примени и (мапирај број? листа)))
|
|
|
|
|
(услов
|
|
|
|
|
((= 0 (дужина аргументи))
|
|
|
|
|
(баци "Функција \"макс\" захтева барем један\
|
|
|
|
|
аргумент"))
|
|
|
|
|
((није (број? (сар аргументи))) (баци "Аргументи дати функцији\
|
|
|
|
|
\"макс\" нису бројеви"))
|
|
|
|
|
((и (= 1 (дужина аргументи)) (број? (сар аргументи)))
|
|
|
|
|
(сар аргументи))
|
|
|
|
|
(#и
|
|
|
|
|
(опиши остатак (примени мин (сдр аргументи)))
|
|
|
|
|
(ако (< остатак (сар аргументи))
|
|
|
|
|
остатак (сар аргументи)))))
|
|
|
|
|
|
2019-03-03 02:52:40 +01:00
|
|
|
|
(опиши (>= . аргументи)
|
|
|
|
|
(или (примени > аргументи) (примени = аргументи)))
|
|
|
|
|
|
|
|
|
|
(опиши (<= . аргументи)
|
|
|
|
|
(или (примени < аргументи) (примени = аргументи)))
|
|
|
|
|
|
2019-02-21 21:41:46 +01:00
|
|
|
|
(опиши (цео-број? џ)
|
2019-02-19 09:49:55 +01:00
|
|
|
|
(= (именилац (нетачно->тачно џ)) 1))
|