Q:

Create a list of identical elements to the size of another list

Let's say I have a (list a b c d) which has a length of 4.
I also have an object, say (circle 4 "solid" "white").
I want to make a list of that object, to the length of the first list.
So end result would be:
(list (circle 4 "solid" "white") (circle 4 "solid" "white") (circle 4 "solid" "white") (circle 4 "solid" "white"))

I rather not use a loop or any higher-order function unless it's map or apply.

A:

You are looking for make-list
(make-list 4 'some-value)
; ==> (some-value some-value some-value some-value)

So if you want as many elements as some other list you just need to know the length
(make-list (length other-list) (circle 4 "solid" "white"))
; ==> (#<object1> #<object1> #<object1> #<object1>)

Since make-list is a function it will evaluate the argument (circle ...) expression before it makes the list so that your list elements will point at the same object and not individually created objects. If you want that you can use map
(map (λ (ignored) (circle 4 "solid" "white")) other-list)
; ==> (#<object1> #<object2> #<object3> #<object4>)

