Ich denke wir reden von wxMaxima, Maxima ist eine Konsolenanwendung und sollte sich aber inputmäßig nicht von wxMaxima unterscheiden...
Was willst Du andrucken?
Du kannst den Code einfach nach wxMaxima/Maxima kopieren - ich stelle den Fehler oben richtig. 0 kann ja auch ein Element der Liste sein, weshalb ich das Abbruchkriterium als boolschen wert definiere!
Die Liste wird nach A sortiert und dann zurückgegeben - fertisch...
Maximasitzung
Maxima 5.28.0-2 http://maxima.sourceforge.net
using Lisp GNU Common Lisp (GCL) GCL 2.6.8 (a.k.a. GCL)
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
(%i1) bubble(L):=block([n:length(L),A:copylist(L),stack:false],while not is (stack=true) do( stack:true, for j:1 thru n-1 do( if A[j] > A[j+1] then( stack:A[j], A[j]: A[j+1], A[j+1]:stack ) )),return(A))$
(%i2) T:makelist(random(100),j,1,12);bubble(T);
(%o2) [12, 2, 34, 85, 4, 91, 29, 85, 98, 3, 35, 65]
(%o3) [2, 3, 4, 12, 29, 34, 35, 65, 85, 85, 91, 98]