Привет.
К делу.
Задача из СИКП 1.3
Определите процедуру, которая принимает в качестве аргументов три числа и возвращает сумму
квадратов двух больших из них.
#lang racket
(define (square x) (* x x))
(define (sum_of_squares x y) (+ (square x) (square y)))
(define (the_largest_num a b c)
( (cond ( (and (> a b) (> a c)) a)
( (and (> b a) (> b c)) b)
(else c)
)
)
)
(define (average a b c)
((if ( (and (< b (the_largest_num a b c))) (> b c)) b c)))
(define (the_sum_of_the_max_and_aver a b c)
(sum_of_squares ((the_largest_num a b c)) ((average a b c))))
ошибка: Применение: не процедура; Ожидается, что процедура может быть применена к аргументам
Понятно, что ничего не понятно.
Как я думаю не работает, а именно. Стартует the_largest, подставляет значение, потом averge ну и тд.
PS. just for fun, как хобби. Я понимаю, что это можно сделать короче, красивее. Ну в общем как сделал.