1. Haskell / Говнокод #28602

    −4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    (define A (list 1 2 3 4 5 6))
    
    (define (filter number first-number)
      (cond ((= (modulo first-number 2) 0)
             (cond ((= (modulo number 2) 0) (list number))
                   (else '())))
            (else (cond ((not (= (modulo number 2) 0)) (list number))
                   (else '())))))
    
    (define (same-parity-impl L n)
      (let ((C (cdr L)))
        (cond ((null? C)
               (filter (car L) n))
              (else
               (append
                (filter (car L) n)
                (same-parity-impl C n))))))
    
    
    (define result (same-parity-impl A (car A)))
    
    (newline)
    (display result)
    (newline)

    Смотрите, что я сделал!

    Запостил: JloJle4Ka, 15 Февраля 2023

    Комментарии (5) RSS

    • Сможете угадать, что делает этот код?
      Ответить
    • Предикат проверки на четность не завезли (а-ля odd? / even? в Racket)
      Ответить
    • Здравствуйте, это канал об #аниме? :3

      Что означает вот этот код?

      '((*default* . ,(lambda args args)))

      Насколько я понимаю, это лист, в котором лежит пара. Эта пара – не лист, да? И точка там нужна, чтобы сделать пару, которая состоит из двух элементов, но не заканчивается на nil.

      А зачем тогда там нужна запятая? Чтобы её "выполнить"? И почему в лямбде нет скобочек вокруг args?
      Ответить
      • >Здравствуйте, это канал об #аниме? :3

        Здравствуй, говно.
        Ответить

    Добавить комментарий