Ορισμός μιας συνάρτησης από το "ιστορικό" : as_function_of

### 1.16.6 Ορισμός μιας συνάρτησης από το `"`ιστορικό`"` :
`as_function_of`

Εάν με μια εντολή ορίσαμε την μεταβλητή `a` και εάν σε μια επόμενη εντολή ορίσαμε την μεταβλητή `b` (που υποθέτουμε ότι εξαρτάται από την `a`), τότε η εντολή `c:=as_function_of(b,a)` θα ορίσει μια συνάρτηση `c` τέτοια ώστε `c(a)=b`.
Είσοδος :

`a:=sin(x)`

Έξοδος :

`sin(x)`

Είσοδος :

`b:=sqrt(1+a```^```2)`

Έξοδος :

`sqrt(1+sin(x)```^```2)`

Είσοδος :

`c:=as_function_of(b,a)`

Έξοδος :

`(a)->
{ local NULL;
return(sqrt(1+a```^```2));
}`

Είσοδος :

`c(x)`

Έξοδος :

`sqrt(1+x```^```2)`

Είσοδος :

`a:=2`

Έξοδος :

`2`

Είσοδος :

`b:=1+a```^```2`

Έξοδος :

`5`

Είσοδος :

`c:=as_function_of(b,a)`

Έξοδος :

`(a)->
{ local NULL;
return(1+a```^```2);
}`

Είσοδος :

`c(x)`

Έξοδος :

`1+x```^```2`

Προσοχή !!
Εάν η μεταβλητή `b` έχει ανατεθεί πολλές φορές, τότε θα χρησιμοποιηθεί η πρώτη εντολή της `b` που ακολουθεί την τελευταία εντολή της `a`. Επιπλέον, η διάταξη που χρησιμοποιείται είναι η σειρά με την οποία εκτελούνται οι εντολές, και η οποία μπορεί να μην φαίνεται στην διεπαφή του Xcas αν διάφορες εντολές έχουν εκτελεσθεί ξανά.
Για παράδειγμα Είσοδος :
`a:=2` και μετά
`b:=2*a+1` και μετά
`b:=3*a+2` και μετά
`c:=as_function_of(b,a)`
Έξοδος :

`(a)-> {local NULL; return(2*a+1);}`

δηλαδή `c(x)` ισούται με `2*x+1`.
Αλλά, Είσοδος :
`a:=2` και μετά
`b:=2*a+1` και μετά
`a:=2` και μετά
`b:=3*a+2` και μετά
`c:=as_function_of(b,a)`
Έξοδος :

`(a)-> {local NULL; return(3*a+2);}`

δηλαδή `c(x)` ισούται με `3*x+2`.