Nп/п : 65 из 87
 От   : Mild Shock                          2:5075/128        07 сен 23 17:15:20
 К    : Mild Shock                                            07 сен 23 03:17:01
 Тема : Re: Request for comments, Novacore the sequel to ISO modules
----------------------------------------------------------------------------------
                                                                                 
@MSGID:
<07e4e441-f981-4034-998b-c665ee434501n@googlegroups.com> 79643c51
@REPLY:
<d9588b9c-edcc-4f8b-85d2-7487b5556798n@googlegroups.com> f2debf1b
@REPLYADDR Mild Shock <bursejan@gmail.com>
@REPLYTO 2:5075/128 Mild Shock
@CHRS: CP866 2
@RFC: 1 0
@RFC-References:
<db8a6771-3e54-485b-b391-310658dd6f52n@googlegroups.com> <d9588b9c-edcc-4f8b-85d2-7487b5556798n@googlegroups.com>
@RFC-Message-ID:
<07e4e441-f981-4034-998b-c665ee434501n@googlegroups.com>
@TZUTC: -0700
@PID: G2/1.0
@TID: FIDOGATE-5.12-ge4e8b94
Did you know that Novacore has change_arg/3?
Works for Dogelog Player and formerly Jekejeke Prolog.
It is similar like nb_linkarg/3 in SWI-Prolog.

So we can implement countall/3 in a blink:

countall(G, N) :-
   functor(Holder, v, 1),
   change_arg(1, Holder, 0),
   (G,
       arg(1, Holder, H),
       J is H+1,
       change_arg(1, Holder, J),
       fail; true),
   arg(1, Holder, N).

Works find:

?- countall(between(10,20,_), N).
N = 11.
--- G2/1.0
 * Origin: usenet.network (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    
                                                                                
В этой области больше нет сообщений.

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