Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Rizzo

Trainee

  • "Rizzo" is male
  • "Rizzo" started this thread

Posts: 54

Date of registration: Oct 9th 2003

Location: Barsinghausen

1

Thursday, November 6th 2003, 12:20am

Fehlermeldung in Scheme

Hab ein Scheme Programm geschrieben was ich hier allerdings nicht reinstellen kann, da es die Lösung zu einer Übung ist. Mein Problem: es Funktioniert prächtig trotzdem bekomme ich eine Fehlermeldung. Und zwar diese:
procedure application: expected procedure, given: #<void>; arguments were: #<void>

Kann mir jemand sagen was das bedeutet. Das Programm tut nämlich genau das was es soll, nur die Fehlermeldung sieht nicht sehr schön aus wenn man es abgibt.

Danke schonmal im Voraus

DominionMADz

Junior Schreiberling

Posts: 165

Date of registration: Feb 8th 2002

Location: SHG

2

Thursday, November 6th 2003, 12:53am

RE: Fehlermeldung in Scheme

Wenn ich dir die Fehlermeldung einfach übersetze, hilft dir das wahrscheinlich nicht unbedingt weiter, aber du solltest vielleicht mal die erforderlichen Parameter deiner Hauptprozedur mit den Rückgabewerten deiner einzelnen Unterprozeduren vergleichen, ich glaube nämlich die Anzahl stimmt da irgendwo nicht überein. Mehr kann ich so ohne Beispielcode nicht dazu sagen :(


Marco ^^

thommyslaw

Junior Schreiberling

  • "thommyslaw" is male

Posts: 226

Date of registration: Oct 7th 2003

3

Thursday, November 6th 2003, 11:07am

das gleiche problem hab ich auch und zwar bei aufgabe 3b, wo man das lineal darstellen soll.
mein problem ist, dass ich einfach keine gescheite abbruchbedingung schaffen kann.
habe als "vorlage" die fact-iter genommen und die prozedur so aufgebaut.

warum gibts in scheme nicht einfach ne for-schleife? ;)

DominionMADz

Junior Schreiberling

Posts: 165

Date of registration: Feb 8th 2002

Location: SHG

4

Thursday, November 6th 2003, 2:42pm

Ich glaube eher, ich hatte den Fehler zwischendurch mal ^^, dass der Fehler immer bei Aufruf von gp in einer anderen Definition vorkommt, wenn man gp hingegen als Parameter übergibt tritt das glaube ich nicht mehr auf. Ich melde mich aber nochmal sobald ich die Aufgaben fertig habe.


Marco ^^

KreiS

Senior Schreiberling

  • "KreiS" is male

Posts: 701

Date of registration: Dec 17th 2001

Location: Hannover

Occupation: moep

5

Thursday, November 6th 2003, 2:46pm

in scheme kann man sich ne schleife selbst basteln

marco, kann es sein das mit begin der fehler wegging? Du hattest ja den auch da plötzlich gehabt :D
kaneda spring <-> ks <-> KreiS
"surrender is an option ...time to change everything" (ks '04)

Dakota-Indianer(Weisheit),"Wenn Du entdeckst, dass Du ein totes Pferd reitest, steig ab"

DominionMADz

Junior Schreiberling

Posts: 165

Date of registration: Feb 8th 2002

Location: SHG

6

Thursday, November 6th 2003, 3:20pm

Auch wenn das hier kein Chat ist ^^

Soweit ich weiss, nein, sondern eben durch Übergabe von gp ^^


Marco ^^

KreiS

Senior Schreiberling

  • "KreiS" is male

Posts: 701

Date of registration: Dec 17th 2001

Location: Hannover

Occupation: moep

7

Thursday, November 6th 2003, 5:10pm

Quoted

Original von DominionMADz
Auch wenn das hier kein Chat ist ^^

Soweit ich weiss, nein, sondern eben durch Übergabe von gp ^^


Marco ^^

Ich bin net migu, also darf ich spammen :P

Bist du sicher? Ich meine das mit dem fehlenden gp hattest du eine andere Fehlermeldung. Die "procedure application: expected procedure, given: #<void>; arguments were: #<void>" hattest du auch beim fehlenden begin ......bzw in der form....
kaneda spring <-> ks <-> KreiS
"surrender is an option ...time to change everything" (ks '04)

Dakota-Indianer(Weisheit),"Wenn Du entdeckst, dass Du ein totes Pferd reitest, steig ab"

thommyslaw

Junior Schreiberling

  • "thommyslaw" is male

Posts: 226

Date of registration: Oct 7th 2003

8

Thursday, November 6th 2003, 8:59pm

also ich komm nicht weiter, probiere schon seit ca. 2 stunden:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(define (ruler distance highlight length)
  (define gp (create-graph-window "Ruler" 50 10 length 100))
  
  (define (draw-dist counter max-count)
    (if (<= counter max-count)
        ((draw-line gp (+ distance (* distance counter)) 1 (+ distance (* distance counter)) 20)
         (draw-dist (+ counter 1) max-count))
        (draw-line gp length 1 length 20)))
  
  (define (draw-highlight counter max-count)
    (if (<= counter max-count)
        ((draw-line gp (+ highlight (* highlight counter)) 1 (+ highlight (* highlight counter)) 40)
         (draw-highlight (+ counter 1) max-count))
        (draw-line gp length 1 length 40)))
  
  (draw-dist 0 (/ length distance))
  (draw-highlight 0 (/ length highlight)))
Das ist Aufgabe 3b.
(ruler distance highlight length) zeichnet ein Lineal in ein Fenster der Länge length, wobei für alle distance Pixel eine kurze Markierung und alle highlight Pixel eine längere Markierung gezeichnet werden soll.

das ding zeichnet mir die distance markierung und bricht dann ab mit der fehlermeldung ab (der then-teil der ersten if-anweisung ist markiert):

Source code

1
procedure application: expected procedure, given: #<void>; arguments were: #<void>

scheinbar stimmt was mit der if-anweisung nicht, jedoch meine ich, dass wenn der then-teil ausgeführt wird es doch danach weitergehen sollte (zum highlight-zeichnen).

vielen dank für jede hilfe, bin verzweifelt

Markus

the one and only Unterstrich!

Posts: 2,571

Date of registration: Oct 9th 2003

9

Thursday, November 6th 2003, 11:11pm

ich bekomme dieselbe fehlermeldung alleine schon beim dreieck
Charmant sein? Hab ich längst aufgegeben. Glaubt mir doch eh keiner...

Markus

the one and only Unterstrich!

Posts: 2,571

Date of registration: Oct 9th 2003

10

Friday, November 7th 2003, 12:08am

Quoted

Original von thommy
also ich komm nicht weiter, probiere schon seit ca. 2 stunden:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(define (ruler distance highlight length)
  (define gp (create-graph-window "Ruler" 50 10 length 100))
  
  (define (draw-dist counter max-count)
    (if (<= counter max-count)
        ((draw-line gp (+ distance (* distance counter)) 1 (+ distance (* distance counter)) 20)
         (draw-dist (+ counter 1) max-count))
        (draw-line gp length 1 length 20)))
  
  (define (draw-highlight counter max-count)
    (if (<= counter max-count)
        ((draw-line gp (+ highlight (* highlight counter)) 1 (+ highlight (* highlight counter)) 40)
         (draw-highlight (+ counter 1) max-count))
        (draw-line gp length 1 length 40)))
  
  (draw-dist 0 (/ length distance))
  (draw-highlight 0 (/ length highlight)))
Das ist Aufgabe 3b.
(ruler distance highlight length) zeichnet ein Lineal in ein Fenster der Länge length, wobei für alle distance Pixel eine kurze Markierung und alle highlight Pixel eine längere Markierung gezeichnet werden soll.

das ding zeichnet mir die distance markierung und bricht dann ab mit der fehlermeldung ab (der then-teil der ersten if-anweisung ist markiert):

Source code

1
procedure application: expected procedure, given: #<void>; arguments were: #<void>

scheinbar stimmt was mit der if-anweisung nicht, jedoch meine ich, dass wenn der then-teil ausgeführt wird es doch danach weitergehen sollte (zum highlight-zeichnen).

vielen dank für jede hilfe, bin verzweifelt


Habe beimir den fehler gefunden, ich glaube, bei dir iegt es an: ((draw-line gp (+ distance (* distance counter))
Ist ja auch rot gemarkert. Du hast zu viele Klammern gesetzt (ja, auch dass gibt es in Scheme)
Er erwartet eine Prozedure, du gibts im ein Wert. Du Fragst dich: Wieso, ichgebe ihm doch eine Prozedure, er sagt, nein tust du nicht, weil Klammern drumm, und es ist ein Wert.
Worauf ich hinnaus will:
Du hast (( irgendwas )) geschrieben, wo ( irgendwas ) hinsollte. Zumindestens war es bei mir so!

MfG Markus
Charmant sein? Hab ich längst aufgegeben. Glaubt mir doch eh keiner...

thommyslaw

Junior Schreiberling

  • "thommyslaw" is male

Posts: 226

Date of registration: Oct 7th 2003

11

Friday, November 7th 2003, 12:13am

danke für deine mühe, aber das war's nicht.
ich muss den then-teil der if-anweisung klammern, weil er da ja den strich zeichnet und danach die prozedur (draw-line ...) wieder aufruft.
ohne klammern kommt: bad syntax, blabla if hat 4 keywords.

das lustige is ja auch dass er die striche (zumindest für distance) zeichnet und danach meckert.

scheiß scheme - soll's mir halt irgendwann mal der betreuer erklären.

KreiS

Senior Schreiberling

  • "KreiS" is male

Posts: 701

Date of registration: Dec 17th 2001

Location: Hannover

Occupation: moep

12

Friday, November 7th 2003, 12:35am

siehe pm, mit begin wird man den fehler los.
kaneda spring <-> ks <-> KreiS
"surrender is an option ...time to change everything" (ks '04)

Dakota-Indianer(Weisheit),"Wenn Du entdeckst, dass Du ein totes Pferd reitest, steig ab"

This post has been edited 1 times, last edit by "KreiS" (Nov 7th 2003, 12:36am)


Torrero

Senior Schreiberling

  • "Torrero" is male

Posts: 854

Date of registration: Oct 16th 2003

Location: Laatzen

Occupation: Angewandte Informatik

13

Friday, November 7th 2003, 12:38am

@KreiS , was soll pm bedeuten?

KreiS

Senior Schreiberling

  • "KreiS" is male

Posts: 701

Date of registration: Dec 17th 2001

Location: Hannover

Occupation: moep

14

Friday, November 7th 2003, 12:40am

auch wenn es hier unter PN nun läuft, PM = private message...... PN = private nachricht

übers forum halt.
kaneda spring <-> ks <-> KreiS
"surrender is an option ...time to change everything" (ks '04)

Dakota-Indianer(Weisheit),"Wenn Du entdeckst, dass Du ein totes Pferd reitest, steig ab"

maffe

Unregistered

15

Thursday, November 10th 2005, 12:38am

Hab das gleiche Problem gehabt, hab mir jetzt Fake-begin-Prozeduren geschrieben, die einfach 0 zurückgibt. Nur leider muss ich so für jede Anzahl an Argumenten ne eigene Prozedur schreiben. Aber wieso ist begin denn nicht erlaubt?

Quoted

Zur L¨osung der Hausubung¨ sind nur die folgenden Scheme-Prozeduren erlaubt, sofern in den Hinwei
zu den einzelnen Aufgaben nicht weitere Befehle angegeben sind:
+ , - , * , / , define , cond , if , < , > , = , <= , >= , and , or , not , abs , exp , odd? , even?

-.-

Neutrino

masselos

  • "Neutrino" is male

Posts: 661

Date of registration: Oct 6th 2005

Location: Hannover

Occupation: SRA Mitarbeiter

16

Thursday, November 10th 2005, 1:13am

ooooohmpf

Diese Übung scheint es algemein in sich zu haben....und zur Vorlesung geht er dann auf das ein was wir bis vor kurzem abgegeben haben sollten. Ich find das System einfach Lol

Posts: 60

Date of registration: Oct 10th 2005

17

Thursday, November 10th 2005, 9:03am

Ich habe das Problem so gelöst, dass ich alle Zeichenoperationen in eine eigene Prozedur gepackt habe, da sie sich ja eh wieholen und bei der Übersicht über die tatsächlichen Berechnungen stören.

Danach kannst du ja die Zeichenrozedur auch in der if-Anweisung benutzen.

Markus

the one and only Unterstrich!

Posts: 2,571

Date of registration: Oct 9th 2003

18

Thursday, November 10th 2005, 5:33pm

Was ist eigentlich so toll daran, zwei Jahre alte Thread auszupacken?
Naja, wie dem auch sei, ich habe das Problem mit der scheinbar nicht gegebenen Synchronisation zwischen Übung und Vorlesung an Christian Görries (zuständig für die Übungsaufgaben) weitergegeben.
Charmant sein? Hab ich längst aufgegeben. Glaubt mir doch eh keiner...

hamena314

Zerschmetterling

  • "hamena314" is male

Posts: 2,032

Date of registration: Aug 31st 2003

Location: Hannover

Occupation: Informatikstudent (d'uh)

19

Thursday, November 10th 2005, 6:10pm

Toll ist vor allem, dass man sehen kann, dass die Prüfer selbst früher mal Probleme hatten ... SCNR! :P

HAVE PHUN!
Nicht der Wind bestimmt die Richtung, sondern das Segel! (Lao Xiang, China)

maffe

Unregistered

20

Thursday, November 10th 2005, 7:39pm

Quoted

Original von ShadowScout
Ich habe das Problem so gelöst, dass ich alle Zeichenoperationen in eine eigene Prozedur gepackt habe, da sie sich ja eh wieholen und bei der Übersicht über die tatsächlichen Berechnungen stören.

Danach kannst du ja die Zeichenrozedur auch in der if-Anweisung benutzen.


Hm wie jetzt? Ich möchte z. B. 4 Pixel zeichnen
(zeichne-pixel xa ya)
(zeichne-pixel xb yb)
(zeichne-pixel xc yc)
(zeichne-pixel xd yd)
Wie sollte ich das in eigene Prozeduren packen? Die müsste ich ja dann auch alle einzeln aufrufen.

Quoted

Original von Markus
Was ist eigentlich so toll daran, zwei Jahre alte Thread auszupacken?
Naja, wie dem auch sei, ich habe das Problem mit der scheinbar nicht gegebenen Synchronisation zwischen Übung und Vorlesung an Christian Görries (zuständig für die Übungsaufgaben) weitergegeben.


Nun, ein neuer Thread schien mir nicht sinnvoll, da es ja nach wie vor das gleiche Problem ist.