login  home  contents  what's new  discussion  bug reports     help  links  subscribe  changes  refresh  edit

Submitted by : (unknown) at: 2007-11-17T22:04:33-08:00 (9 years ago)
Name :
Axiom Version :
Category : Severity : Status :
Optional subject :  
Optional comment :

The append function in axiom has the lisp background. axiom and lisp don't duplicate the last list.

fricas
L1 := [1,2,3] ;
Type: List(PositiveInteger)
fricas
L2 := [10,11,12] ;
Type: List(PositiveInteger)
fricas
L := append (L1, L2) ;
Type: List(PositiveInteger)
fricas
L2.2 := 100

\label{eq1}100(1)
fricas
L.5 -- is 100, not 11

\label{eq2}100(2)

There is also a concat function that I understand in a mathematical way. today concat works as append.

fricas
L1 := [1,2,3];
Type: List(PositiveInteger)
fricas
L2 := [10,11,12] ;
Type: List(PositiveInteger)
fricas
Lc := concat (L1, L2)

\label{eq3}\left[ 1, \: 2, \: 3, \:{10}, \:{11}, \:{12}\right](3)
Type: List(PositiveInteger)
fricas
L1.2 :=20

\label{eq4}20(4)
fricas
Lc.2

\label{eq5}2(5)
fricas
L2.2 :=30

\label{eq6}30(6)
fricas
Lc.5

\label{eq7}30(7)

Lc doesn't change if I change L1, and Lc change if I modify L2. Is it possible to change concat in order to copy L2, as concat (L1, L2) == append (L1, copy (L2))

The concat function becomes just a little slower. And then list are here a real hi-level n-uple oblject, not a lisp object.

F.Maltey

Category: Axiom Compiler => Axiom Library

Status: open => closed

This is a common idiom and List is not "mathematical" but a data structure.




  Subject:   Be Bold !!
  ( 13 subscribers )  
Please rate this page: