• 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

KDE Plasma 6.6 skrivebordsmiljø udgivet 0
youtube-tui: Nyd YouTube fra terminalen som en professionel 0
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

Seneste aktivitet

BigLinux 5
Det engang så elskede PCLinuxOS er tilbage - og det er stadig en fantastisk Windows erstatning 1
rsync og filsystem 6
Mousam er en detaljeret desktop vejrapp til Linux 1
Hjælp til Handbrake - ingen dk-undertekster 1
luckyBackup 2
GIMP 30
Pinegrow på Debian 13 ? 4
Openmediavault 1
E-mail blues 9
Driver til min scanner? 5
Printer Epson ET-2865 problem 16
Sudo 7
Thunderbird filvedligeholdelse 2
Debian 13.3.0 8
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

© 2026 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !