Thread View: bln.comp.lang.opal
2 messages
2 total messages
Started by Nikolaus Filus
Sun, 18 Nov 2001 15:29
Re: -5 in Liste
Author: Nikolaus Filus
Date: Sun, 18 Nov 2001 15:29
Date: Sun, 18 Nov 2001 15:29
33 lines
2182 bytes
2182 bytes
In bln.comp.lang.opal, you wrote:
> Hallo!
>
>> kann mir jemand vielleicht sagen, wie ich eine negative Zahl in einer
>> Liste als Parameter uebergebe?
>
> Denotation mit dem !-Operator konvertieren. Z. B. "-2"!
>
>> Ich habe folgende Funktion:
>>
>> FUN horner : nat ** seq[nat] -> nat
>>
>>> e horner (2, 2 ::: 0 :: "-5"! :: 3 :: <>)
>>
>> funktioniert leider nicht.
>
> Kann auch nicht, da -5 keine nat�rliche Zahl ist! Also muss die
> Funktionsdeklaration / ~implementation angepasst werden. Anschlie�end
> funktioniert z. B. e horner (2, 2::(0::("-5"!::(3::(<>))))).
Ist mir im Nachhinein auch aufgefallen, nur dass nicht mal eine sinnvolle
Fehlermeldung oder eine Konvertierung moeglich war, hat mich so gewundert.
Aber Danke fuer den Hinweis.
Apropos: Wer liest hier aktiv mit und kann mir bei
Installationsschwierigkeiten von opal auf meiner Linux-Kiste helfen. Es
muss irgendwie ein Fehler in den build-scripten geben, denn es wird kein
libreadline beim linken von oasysbin gefunden, obwohl es bei allen anderen
libs bereits funktioniert hat. Leider steige ich nicht durch das
build-system durch, so dass ich um Hinweise bitte.
Nikolaus
Re: -5 in Liste
Author: Klaus Didrich
Date: Sun, 18 Nov 2001 16:00
Date: Sun, 18 Nov 2001 16:00
44 lines
2938 bytes
2938 bytes
Nikolaus Filus schrieb:
>> Kann auch nicht, da -5 keine nat�rliche Zahl ist! Also muss die
>> Funktionsdeklaration / ~implementation angepasst werden. Anschlie�end
>> funktioniert z. B. e horner (2, 2::(0::("-5"!::(3::(<>))))).
>
> Ist mir im Nachhinein auch aufgefallen, nur dass nicht mal eine sinnvolle
> Fehlermeldung oder eine Konvertierung moeglich war, hat mich so gewundert.
Automatische Konvertierungen gibt es in Opal nicht.
Du hast leider nicht geschrieben, welche Fehlermeldung gekommen ist.
Allgemein ist es bei fehlerhaften Infixfunktionen sehr schwierig,
Fehlermeldungen zu erzeugen. Das liegt an der kombinatorischen Explosion, der
Compiler m�sste ja f�r jede der m�glichen Klammerungen die jeweilige
Fehlermeldung ausgeben. Stattdessen gibt es einfach nur ein "no bracketing
for infix found".
Allgemein ist es ung�nstig, Infix- und Postfixanwendungen von Funktionen zu
mischen, das �berfordet den Opal-Compiler. Wenn man die Postfixanwendungen
klammert, funktioniert es aber in der Regel:
horner(2, 2 :: 0 :: ("-5"!) :: 3 :: <>)
> Apropos: Wer liest hier aktiv mit und kann mir bei
> Installationsschwierigkeiten von opal auf meiner Linux-Kiste helfen. Es
> muss irgendwie ein Fehler in den build-scripten geben, denn es wird kein
> libreadline beim linken von oasysbin gefunden, obwohl es bei allen anderen
> libs bereits funktioniert hat. Leider steige ich nicht durch das
> build-system durch, so dass ich um Hinweise bitte.
Das ist auch schwierig. Leider schreibst Du nicht, welches Distribution Du
verwendest, und wie die Fehlermeldung aussieht. Falls es nicht daran liegt,
dass das Paket readline-dev (oder so �hnlich) fehlt (gesucht wird eine Datei
readline/readline.h), schicke mir die Ausgaben per mail.
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