Hallo,
wie w"ar's mit
k /: k < 0 = True
k /: k > 0 = False
k /: k==0 =False
Los wird man die Definitionen f"ur k dann mit
Clear[k]
Damit das wenigstens *etwas* lokal bleibt
kann man auch
Block[{k},
k /: k < 0 = True;
k /: k > 0 = False;
k /: k==0 = False;
f[x]
]
benutzen.
Beim umschalten sollte man aber *alles* "andern da
man ja "theoretisch" auch k>0=True und k<0=True definieren
kann. Dann wird aber die *erste* Regel genommen die passt.
Jedenfalls ist das sehr sch"on umst"andlich.
Gruss
Jens
Attilio wrote:
>
> Liebe Kollegen,
>
> Wie kann man folgendes Problem elegant in MMA loesen?
>
> z.B. folgende Funktion:
>
> In[1]=
> f[x_]/;k==0:=1
> f[x_]/;k>0:=x
> f[x_]/;k<0:=1-x
>
> nun
>
> In[2]=f[x]
>
> gibt natuelich dann
>
> Out[1]=f[x]
>
> Frage: Gibt es eine Weg MMA mitzuteilen dass, z.B. jetzt k>0 um dann bei
>
> In[4]=f[x] (* k>0 *)
>
> Out[2]=x
>
> ohne einen Wert fuer k festzulegen?
>
> Mit freundlichem Gruss
>
> Tilio Rivoldini