## Dein Beispiel
Wenn du `\addall` so definierst:
\def\addall{\def\@tmpc{0}\@addall}
\def\@addall#1#2{%
\edef\@tmpb{#1}%
\popleft\@tmpb\currentvalueA
\FPadd\@tmpc\@tmpc{\csuse{\currentvalueA}}%
\ifdefempty\@tmpb{\cslet{#2}\@tmpc}{\@addall\@tmpb{#2}}}
und mit
\addall{A|B|C|D}{summe}
verwendest, enthält `\summe` dann `50.000000000000000000` und kann natürlich wieder verwendet in Funktionen wie
\addall{summe|B}{summe}
wobei dann `\summe` jetzt `60.…` enthalten sollte.
### Verbesserung
Anstatt Macro-Sequenzen wie `\A`, `\B` oder `\summe` zu verwenden, würde ich wenigstens einen eigenen „Namespace“ (das gibt es in TeX zwar nicht, aber ich nenne es mal so) verwenden, in dem du
\def\@assignvalues#1#2{%
\protected@edef\@tmpb{#1}\protected@edef\@tmpc{#2}%
\popleft\@tmpb\currentvalueA
\popleft\@tmpc\currentvalueB
\protected@csedef{goldnas@\currentvalueA}{\currentvalueB}% <- hier
\ifdefempty\@tmpb{}{\assignvalues\@tmpb\@tmpc}%
}
\def\addall{\def\@tmpc{0}\@addall}
\def\@addall#1#2{%
\edef\@tmpb{#1}%
\popleft\@tmpb\currentvalueA
\FPadd\@tmpc\@tmpc{\csuse{goldnas@\currentvalueA}}% <- hier
\ifdefempty\@tmpb{\cslet{#2}\@tmpc}{\@addall\@tmpb{#2}}}
wobei an den mit `<- hier` gekennzeichneten Stellen der Text `goldnas@` eingefügt wurde. Der Code definiert also jetzt `\goldnas@A`, `goldnas@B` sowie `\goldnas@summe`. Das ist etwas sicherer; stell dir vor jemand definiere `\sum` neu! Benutzen kannst du den Wert dann mit
\def\benutze#1{\csuse{goldnas@#1}}
<!--## ## vielleicht PGFmath?
Aber warum denn die Mathematik neu definieren? Das Paket `pgfmath` enthält bereits einen wunderbaren Mathematik-Parser und bietet sich sogar als Frontend für `fp` an (ansonsten würde es alle Berechnungen mit eigenen Funktionen und TeX’s Präzision machen).-->machen).
Ein kleiner Anfang:
\documentclass{article}
\usepackage{pgf,fp}
\usepgflibrary{fixedpointarithmetic}
\pgfset{fixed point arithmetic}
\newcommand*{\declareFunctions}[1]{\pgfset{declare function={#1}}}
\begin{document}
\declareFunctions{A=5; B=10; C=15; D=20;}
\pgfmathprint{A+B+C+D}
\pgfmathsetmacro\summe{A+B+C+D}\summe
\declareFunctions{summe=A+B+C+D;}\pgfmathprint{summe}
\declareFunctions{foo(\x,\a,\b,\c)=\a*\x*\x+\b*\x+\c;}
\pgfmathprint{foo(2, -1, 3, sqrt(2))}
\end{document}