Senior Schreiberling
Date of registration: Jul 5th 2003
Location: Malaga
Occupation: Senior Cloud Solution Engineer bei Oracle
Quoted
Original von The-Holy-One
1.) Wenn ich eine Integerzahl habe, z.B. 134679 wie kann ich die einzelnen Zeichen ansprechen z.B. Möchte ich das Zeichen auf der 3. Position (in diesem Fall 4) haben.
Quoted
(define (num->liste n)
(if (< n 10)
(cons n ())
(cons (remainder n 10) (num->liste (/ (- n (remainder n 10)) 10)) )))
(define (pos n nummer)
(define (iter n liste)
(if (= n 1)
(car liste)
(iter (- n 1) (cdr liste))))
(iter n (reverse (num->liste nummer))))
(pos 2 0123456789) ----> 2
(pos 4 0123456789) ----> 4
(pos 8 0123456789) ----> 8
Quoted
2.) Ich brauche eine äquivalenten Scheme-Befehl zu folgendem Pascal Aufruf y:= y + 1
Quoted
(define (plus_1 n)
(+ 1 n))
(plus_1 5) ----> 6
This post has been edited 1 times, last edit by "Sinan" (Oct 31st 2004, 2:10pm)
Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Quoted
Original von The-Holy-One
1.) Wenn ich eine Integerzahl habe, z.B. 134679 wie kann ich die einzelnen Zeichen ansprechen z.B. Möchte ich das Zeichen auf der 3. Position (in diesem Fall 4) haben.
Source code |
|
1 2 3 4 |
(define (digit n d) (if (= (quotient n (expt 10 d)) 0) (modulo n 10) (digit (quotient n 10) d))) |
Mittels set! lassen sich Variablen neu definieren. Sollte man aber nicht unbedingt machen -- in Scheme geht das meistens auch anders viel besser.Quoted
2.) Ich brauche eine äquivalenten Scheme-Befehl zu folgendem Pascal Aufruf y:= y + 1
This post has been edited 1 times, last edit by "Joachim" (Oct 31st 2004, 7:32pm)