Scheme – Funkcionální programování – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Scheme – Funkcionální programování – Fórum – Programujte.comScheme – Funkcionální programování – Fórum – Programujte.com

 

Jarda
~ Anonymní uživatel
199 příspěvků
14. 10. 2007   #1
-
0
-

Prosim vas nemohli by mi nekdo poradit delame ve SCHEME a mame udelat tyhle 2 priklady :

mame proceduru TIME TOO SEKUND
-mame brat argumenty HODINY,MIN a SEK
- a ma se nam vratit pocet sekund

a pak

mame proceduru TIME TOO LIMITS
-vezmeme jako argument pocet sekund a vrati jako argument celych minut

nevite prosim vas nekdo jak na to,ja vubec nevim,dekuji moc za ochotu,kdo by vedel.

Nahlásit jako SPAM
IP: ...–
KroYc0
Newbie
28. 11. 2009   #2
-
0
-

Ahojte mám naprogramovat ve Scheme proceduru combinations pomocí map, něco již mám ale pořád to dělá chybu, děkuji za rady.

(define petr
(lambda (l)
(map
(map
(cons l l)) (cons l (reverse l)))))

Nahlásit jako SPAM
IP: 88.146.188.–
H4wk.cz0
Newbie
29. 11. 2009   #3
-
0
-

Nějaký podrobnější popis čeho se snažíš docílit?

Jinak ten druhý map by možná taky měl být v lambdě. Jsem zvyklý z haskellu na currying a už si moc nepamatuju scheme.

Nahlásit jako SPAM
IP: 90.180.131.–
http://ksp.mff.cuni.cz - Nauč se opravdu programovat
KroYc0
Newbie
29. 11. 2009   #4
-
0
-

To H4wk.cz : Mám vytvořit kombinaci čísel, např. '(1 0)...tzn. (((1 . 1) (1 . 0)) ((0 . 1)(0 . 0))) a mě to zatím dělá (((1 . 1) (0 . 0)) (1 . 0) (0 . 1)) a nevím jak to tam vložit aby to dělalo (((1 . 1) (1 . 0)) ((0 . 1)(0 . 0))) .

Nahlásit jako SPAM
IP: 88.146.188.–
H4wk.cz0
Newbie
29. 11. 2009   #5
-
0
-

Tak to je tím, že cons spojí hlavu a ocas. Tedy z (cons '(0 1) '(2 3)) udělá '((0 1) 2 3). Asi bys chtěl něco jako (cons '(0 1) '( '(2 3))) z čeho ti vznikne '( '(0 1) '(2 3) ). Mně se už nedaří napsat nic rozumného v schemu, takže radím jen teoreticky :D

Nahlásit jako SPAM
IP: 90.180.131.–
http://ksp.mff.cuni.cz - Nauč se opravdu programovat
KroYc0
Newbie
1. 12. 2009   #6
-
0
-

Ahoj programátoři, chtěl bych se na Vás obrátit o radu, řeším převody z dvojkové do desítkové soustavy.
nu a mě to nedělá jednu věc, když zadám ( 1 1 0 0) tak desítkový ekvivalent je číslo 12, jenže mě to počítá jako by všude byly jedničky, je mi jasny že podmínku cond mám blbě. díky Vám za rady.

(define bin2dec
(lambda (l)
(let ((len (length l)))
(apply + (build-list len (lambda (i) (cond ((= (- i ) 0) 0)
(else (expt 2 (- len i 1))))))))))

Nahlásit jako SPAM
IP: 88.146.188.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
2. 12. 2009   #7
-
0
-

Mne funguje toto

(defun bin-des (cislo)

(do
((i (length cislo) (1- i)) (p 0) (j 1 (setf j (* 2 j))))
((= i 0) p)
(if (= (nth (- i 1) cislo) 1)
(setf p (+ p j)))))


Lisp sa este len ucim takze to moze niekomu pripadat ako prasarna :) a navyse je to common lisp, ale hadam to pomoze.

Nahlásit jako SPAM
IP: 78.128.199.–
H4wk.cz0
Newbie
2. 12. 2009   #8
-
0
-

Ono luštit cizí kód je docela o držku, tak jsem si to napsal, jak bych to dělal já:

(define (bin2dec l) (bin2dec_reverse (reverse l)))


(define (bin2dec_reverse s)
(if (null? s)
0
(+ (car s) (* 2 (bin2dec_reverse (cdr s))))
)
)

Nahlásit jako SPAM
IP: 78.128.196.–
http://ksp.mff.cuni.cz - Nauč se opravdu programovat
KroYc0
Newbie
2. 12. 2009   #9
-
0
-

Díky za typy přátelé...

Nahlásit jako SPAM
IP: 88.146.188.–
KroYc0
Newbie
2. 12. 2009   #10
-
0
-

Anonymní uživatel napsal:
Mne funguje toto

(defun bin-des (cislo)
(do
((i (length cislo) (1- i)) (p 0) (j 1 (setf j (* 2 j))))
((= i 0) p)
(if (= (nth (- i 1) cislo) 1)
(setf p (+ p j)))))


Lisp sa este len ucim takze to moze niekomu pripadat ako prasarna :) a navyse je to common lisp, ale hadam to pomoze.



Právě že se to taky učím, a nejde to zrovna podle mých představ...

Nahlásit jako SPAM
IP: 88.146.188.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý