🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: bln.comp.lang.opal
2 messages
2 total messages Started by Nikolaus Filus Thu, 15 Nov 2001 12:51
Syntax von WHERE
#31
Author: Nikolaus Filus
Date: Thu, 15 Nov 2001 12:51
28 lines
1593 bytes
Hi,

ich sitze gerade an den Augaben vom Aufgabenblatt 3 fuer Info1 und habe
mal wieder ein Verstaendnisproblem von WHERE. Kann mir jemand sagen wieso
Beispiel 1 funktioniert und 2 nicht? Nach meiner Begrifflichkeit sind
beide logisch aufgebaut.

FUN skalprod : seq[nat] ** seq[nat] -> nat
DEF skalprod (v1,v2) == 
	IF <>?(v1) THEN 0
	IF <>?(v2) THEN 0
	ELSE
		ft(v1)*ft(v2) + skalprod(rt(v1),rt(v2))
	FI

FUN skalprod2 : seq[nat] ** seq[nat] -> nat
DEF skalprod2 (v1,v2) == x
	WHERE
		x == a*b + skalprod2(rt(v1),rt(v2))
		a == IF <>?(v1) THEN 0 ELSE ft(v1) FI
		b == IF <>?(v2) THEN 0 ELSE ft(v2) FI

Danke schon mal,

Nikolaus

-- 
C rules! :)
Re: Syntax von WHERE
#33
Author: Klaus Didrich
Date: Sat, 17 Nov 2001 17:31
37 lines
2106 bytes
Nikolaus Filus schrieb:

> Hi,
> 
> ich sitze gerade an den Augaben vom Aufgabenblatt 3 fuer Info1 und habe
> mal wieder ein Verstaendnisproblem von WHERE. Kann mir jemand sagen wieso
> Beispiel 1 funktioniert und 2 nicht? Nach meiner Begrifflichkeit sind
> beide logisch aufgebaut.
> 
> FUN skalprod : seq[nat] ** seq[nat] -> nat
> DEF skalprod (v1,v2) ==
> IF <>?(v1) THEN 0
> IF <>?(v2) THEN 0
> ELSE
> ft(v1)*ft(v2) + skalprod(rt(v1),rt(v2))
> FI
> 
> FUN skalprod2 : seq[nat] ** seq[nat] -> nat
> DEF skalprod2 (v1,v2) == x
> WHERE
> x == a*b + skalprod2(rt(v1),rt(v2))
> a == IF <>?(v1) THEN 0 ELSE ft(v1) FI
> b == IF <>?(v2) THEN 0 ELSE ft(v2) FI


Der Unterschied ist, dass bei der zweiten Definition die Rekursion nicht 
abbricht und deswegen irgendwann einmal rt(<>) aufegrufen wird. (Ich nehme 
an, das war der Fehler den Du meintest.) Versuche einfach mal, per Hand den 
Aufruf von skalprod<>, <>) und skalprod2(<>, <>) nachzuvollziehen.

MfG
        Klaus
-- 
----------------------------------------------------------------------
Klaus Didrich   
email: Klaus.Didrich@berlin.de
----------------------------------------------------------------------
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads