Nп/п : 86 из 93
 От   : none) (albert                       2:5075/128        22 сен 23 10:51:45
 К    : Kaz Kylheku                                           22 сен 23 11:55:03
 Тема : Re: Understanding apply in MAL (clojure dialect)
----------------------------------------------------------------------------------
                                                                                 
@MSGID:
f8bde87c
@REPLY: <20230921065214.723@kylheku.com> 97d9cbd6
@REPLYADDR none) (albert
@REPLYTO 2:5075/128 none) (albert
@CHRS: CP866 2
@RFC: 1 0
@RFC-References:
<20230921065214.723@kylheku.com>
@RFC-Message-ID:

@TZUTC: 0200
@TID: FIDOGATE-5.12-ge4e8b94
In article <20230921065214.723@kylheku.com>,
Kaz Kylheku  <864-117-4973@kylheku.com> wrote:
>On 2023-09-21, albert@cherry.(none) (albert)  wrote:
>> (apply symbol? (list (quote two))
>> We arrive at the list to be evaluated
>> (<#4623388> ) where  #4623388 is the actual function symbol? refers to.
>>
>> This is an abstract structure tree: a list consisting of a a function
>> and a symbol.
>>
>> Now we are supposed to evaluate this list.
>
>No, that would be a double evaluation.
>
>In a Lisp-1 dialect,
>
>  (apply fun (list a b c))
>
>is the same as
>
>  (fun a b c)
>
>You`re talking about:
>
>  ((eval fun) (eval (list a b c)))
>
>apply is an ordinary function. After evaluating the arguments
>we have these items
>
> (#<4580123> #<4623388> (two))
>   ^         ^
>   apply     symbol?
>
>we are now ready to call the function: we call #<4580123>,
>which is apply, passing it #<4623388> and (two).
>
>apply doesn`t eval anything: apply takes the list (two) and spreads
>it into individual arguments, which are passed to #<4623388>.
What we do with #<4623388>, is that not called evaluation?

I attached the property that a procedure is special or normal
to the underlying procedure of `symbol? not to `symbol? itself.
Is that correct?

>
>The expectation that (apply symbol? (list two)) will yield
>true requires either very weird semantics that depart far from
>classic Lisp, or else that two is a variable which holds a symbol.

That was a  mistake. See my separate post.
(apply symbol? (list (quote two)))

>Kaz
-- 
Don`t praise the day before the evening. One swallow doesn`t make spring.
You must not say "hey" before you have crossed the bridge. Don`t sell the
hide of the bear until you shot it. Better one bird in the hand than ten in
the air. First gain is a cat spinning.            - the Wise from Antrim -
--- trn 4.0-test77 (Sep 1, 2010)
 * Origin: KPN B.V. (2:5075/128)
SEEN-BY: 5001/100 5005/49 5015/255 5019/40 5020/715
848 1042 4441 12000
SEEN-BY: 5030/49 1081 5058/104 5075/128
@PATH: 5075/128 5020/1042 4441



   GoldED+ VK   │                                                 │   09:55:30    
                                                                                
В этой области больше нет сообщений.

Остаться здесь
Перейти к списку сообщений
Перейти к списку эх