Я пытаюсь определить функцию longestString, которая использует список (может содержать элементы любого типа) и возвращает самую длинную строку
У меня есть две функции, чтобы сделать это, первая берет списоклюбого типа и выводит список только строк, вторая берет список строк и выводит самую длинную строку.Теперь проблема в том, как объединить эти две функции для совместной работы.Любая помощь приветствуется
первая функция:
( : sublist-numbers : (Listof Any) -> (Listof String))
(define (sublist-numbers l )
( : sublist-numbers-helper : (Listof Any) (Listof String)-> (Listof String))
(define (sublist-numbers-helper l r)
(cond ((null? l) r)
((string? (first l)) (sublist-numbers-helper (rest l) (cons (first l) r )))
(else (sublist-numbers-helper (rest l) r))))
(sublist-numbers-helper l '()))
second function:
( : maxOf : (Listof String) -> String)
(define (maxOf l)
(cond
;((null? list) (error "empty list") )
((null? (rest l)) (first l))
(else (cond
((> (string-length(first l)) (string-length(maxOf (rest l)))) (first l))
(else (maxOf (rest l))))))))
Вывод должен выглядеть примерно так:
(test (longestString '(34 uuu 90)) =>false) (test (longestString '(uu 56 oooo "r" "rRR" "TTT")) => "rRR")