Тук ще сложа общи коментари за домашните, но след като свърши крайният срок. На всеки давам съвети какво може да подобри в решенията си и понеже съветите се повтарят, тук ще ги обобщя.

Често срещана грешка във втора задача: Защо началната стойност за максималната стойност е 0? Ако f е изцяло отрицателна в дадения интервал, максимумът е отрицателен. Трябва началната стойност да е (f a) и да търси от (+ a 1) до b. Всъщност тази грешка се среща в половината домашни, може би защото при повечето задачи досега работихме само с естествени числа. Надявам се само това да е причината :)

Във втора задача трябва да се върне функция на два параметъра (a и b), а не самата максимална стойност.

Съветите за подобрения, които съм ви дал, не намаляват оценката, разбира се, просто ви казвам как може да се напише по-кратко, по-четливо и т.н.

Специално съветът за стъпка (+ i 2) в първа задача може да не го четете. Условието беше изкуствено сглобено и затова сте го интерпретирали по няколко различни начина и при един от тях няма нужда от такава оптимизация. На контролното условията ще са по-кратки :)

(Ще сложа още коментари, но по-късно).


! Понеже не остана много време за списъци и не ви дадох такова домашно, разгледайте следните бележки и задачи:

Да се конструира точкова двойка от два списъка...
Очевидно това става с (cons l1 l2), където l1 и l2 са двата списъка.
Тествайте например с (cons '(1 2 3) '(4 5 6)). На екрана ще видите ((1 2 3) 4 5 6), което на пръв поглед изглежда грешно - може би очаквахме да пише ((1 2 3) . (4 5 6)), но това е същото - нарисувайте си точковите двойки на лист и разгледайте какво се получава.

Да се дефинира функция, която по даден списък от точкови двойки (a1 . b1), ..., (an . bn) конструира точкова двойка от два списъка - (a1 a2 ... an) и (b1 b2 ... bn).

Да се дефинира функция, която по даден списък (a1 a2 ...) и дадени две функции f и g да конструира списъка ((f a1) (g a2) (f a3) (g a4) ...)

(Това не е домашно, просто ги упражнете)

Последно модифициране: събота, 12 ноември 2011, 17:38