Thanks Danilo .. I don't quite see how using fifo could make batch simpler
- could you elaborate please?
Regards,
Kashyap

On Sat, Apr 27, 2019 at 11:26 AM Danilo Kordic <danilo.kor...@gmail.com>
wrote:

>   I would simply use a Dequeue, like 'fifo'.
>
> On Sun, Apr 21, 2019, 19:44 C K Kashyap <ckkash...@gmail.com> wrote:
>
>> Thanks Alex! - that's the kindest "cut" :)
>> Regards,
>> Kashyap
>>
>> On Sun, Apr 21, 2019 at 10:24 AM Alexander Burger <a...@software-lab.de>
>> wrote:
>>
>>> Hi Kashyap,
>>>
>>> > (de batch (l s) # l: input list, s = batch size
>>> >  (let ts (* -1 s)
>>> > (make
>>> > (while (< 0 (length l))
>>> > (link (head s l))
>>> > (setq l (tail ts l))))))
>>> >
>>> > I'd love to get some feedback on this.
>>>
>>> First I would suggest to stick with the convention of upper case local
>>> variables, to avoid severe foot damage ;)
>>>
>>>    (de batch (L S)  # L: input list, S = batch size
>>>       (let Ts (* -1 S)
>>>          (make
>>>             (while (< 0 (length L))
>>>                (link (head S L))
>>>                (setq L (tail Ts L)) ) ) ) )
>>>
>>> Then a few improvements:
>>>
>>>    — Instead of (* -1 S) better use the unary minus (- S) It avoids a
>>>      multiplication and just sets a sign bit
>>>    — (while (< 0 (length L)) ..) is expensive, as it counts the length
>>> of the
>>>      list each time. Better use a simple (while L ..)
>>>    — 'head' and 'tail' can be replaced by 'cut'
>>>
>>>
>>> With that, we get:
>>>
>>>    (de batch (L S)  # L: input list, S = batch size
>>>       (make
>>>          (while L
>>>             (link (cut S 'L)) ) ) )
>>>
>>> ☺/ A!ex
>>>
>>> --
>>> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>>>
>>

Reply via email to