guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: list-set! Wrong type argument in position 1 (expecting mutable pair)


From: Linus Björnstam
Subject: Re: list-set! Wrong type argument in position 1 (expecting mutable pair)
Date: Wed, 26 Aug 2020 22:43:32 +0200
User-agent: Cyrus-JMAP/3.3.0-232-g4bdb081-fm-20200825.002-g4bdb081a

Literals are immutable. (list-set! '(1 2 3) 1 0) -> error.

(list-set! (list 1 2 3) 1 0) -> works

-- 
  Linus Björnstam

On Wed, 26 Aug 2020, at 22:12, mbcladwell@stihie.net wrote:
> 
> Hi,
> One shortcoming I find working with Guile is the limited number of  
> examples of how to use code. Consider list-set!. The only reference in  
> the entire Guile manual is the definition in section 6.6.9.6 List  
> Modification. If I google I find  
> https://docs.racket-lang.org/reference/pairs.html which gives me the  
> example (list-set '(zero one two) 2 "two") ==> '(zero one "two") which  
> is what I deduced from the Guile manual.  If I try something similar  
> in Guile:
> 
> scheme@(guile-user)> (list-set! '("zero" "one" "twooooo") 2 "two")
> ice-9/boot-9.scm:1669:16: In procedure raise-exception:
> In procedure set-car!: Wrong type argument in position 1 (expecting  
> mutable pair): ("twooooo")
> 
> Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
> scheme@(guile-user) [1]> ,bt
>             1 (list-set! ("zero" "one" "twooooo") 2 "two")
> In ice-9/boot-9.scm:
> 1669:16  0 (raise-exception _ #:continuable? _)
> 
> Could someone provide me with an example of how to use list-set! ?
> Alternatively what I really need is how to modify a specified element  
> in a list.
> Thanks
> Mortimer
> 
> 
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]