• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af Looop | 30.04.2010 19:37

Petite Chez Scheme: Har en zip og unzip metod som skal gøres hurtiger.

Programmering
Okay måske et lidt underligt programmerings sprog, men jeg kan faktisk godt lide det, til simpelt arbejde.
Men nu er jeg sku kommet i problemer, jeg har de her metoder:

(define zip
(lambda (a b)
(if (and (list? a) (list? b))
(if (equal? (length a) (length b))
(if(zero? (length a)) '()
(cons (cons (car a) (car b)) (zip (cdr a) (cdr b))))))))

(Define unzip
(lambda (a) ;;; The reason for only 1 lambda need is because we are splliting one list of pairs not two
(if (list? a)
(if (null? a) '(() ()) ;;; If ther exist no a then return to list, both containg the empty list
(list (cons (caar a) (car (unzip (cdr a))))
(cons (cdar a) (cadr (unzip (cdr a)))))))))

Begge metoder kører i O(n^3), men så vidt jeg kan regne ud skulle det kunne gøres i O(n) tid, men jeg ved ikke helt hvordan det skal kunne gøres.
Dog har jeg en ide om at det skal kunne gøres med en letrec metode, men jeg er ikke helt klar over hvordan det skal gøres, for det er jeg stadig ved at lærer.
Så er der nogen som kan hjælpe med det ?
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer

Svar søges

GRUB 2.14 introducerer understøttelse af EROFS, forbedringer til Btrfs og LVM 0
KDE Plasma 6.6 tilføjer en funktion, som brugerne har spurgt efter i evigheder 0
Linux i København 12.01.2026: Open source i det offentlige 0
Dansk distro Omarchy 0
KDE overgår indsamlingsmålet for 2025 med rekordstor støtte fra lokalsamfundet 0

Seneste aktivitet

BigLinux 1
E-mail blues 6
Linux Mint 22.3 - hvornår opdatere? 10
Canon-printer: Jeg savner "Ink-Toner Level"-meddelelse 10
billede af nuværende installation 2
mapper 4
LinuxIn live 9
Linux Debian på ekstern HD 4
usb disk *LØST* 2
Pacman kunne erstattes af en anden Rust baseret mulighed 1
Epson skanner software 8
Debian 1
Printer Epson ET-2865 problem 8
Winboat 4
Nu kan man skrive private beskeder 14
Mint på imac 2009 34
Firefox AI 7
Kunstig inteligens 6
Kopiering til min Samsung telefon 9
Installation af programmer 21

© 2026 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !