209 похожих чатов

Я тут List.Generate написал вообще без библиотечных функций, правда пришлось

ещё List.Transform сделать самописную 😅 Тестировал на примере из справки

let

ListTransform = ( list as list, function as function ) => let
iterate = each let
this = list{ _ }?
in if this = null then {}
else { function( this ) } & @iterate( _ + 1 )
in iterate( 0 ),

Test = ListTransform( { 1..19 }, each _* 3 ),

ListGenerate = (
initial as function,
condition as function,
next as function,
optional selector as function
) => let
iterate = each
if condition( _ )
then { _ } & @iterate( next( _ ) )
else {}
in if selector = null
then iterate( initial() )
else ListTransform( iterate( initial() ), selector ),

test = ListGenerate(() => 10, each _ > 0, each _ - 1),
test2 = ListGenerate(() => [x = 1, y = {}], each [x] < 10, each [x = List.Count([y]), y = [y] & {x}], each [x])

in
test2

4 ответов

18 просмотров

прикольно! ща помучаю могу предложить добавить пост в ГостевойТанк

пример отрабатывает, но при увеличении массива или усложнении функций обваливает стек, в отличие от штатной - надо поковырять, затея-то интересная )))

Илья-Назаров Автор вопроса
Mikhail Muzykin
пример отрабатывает, но при увеличении массива или...

Рекурсия создает кучу контекстов вызовов, скорее всего заканчивается память и стек переполняется. Думаю, что существенного улучшения не получится. Оригинальные функции наверняка работают без рекурсий) Этот пример разве что в чисто образовательных целях, что в некоторых ситуациях можно обойтись одними операторами😅

Илья Назаров
Рекурсия создает кучу контекстов вызовов, скорее в...

это понятно, было интересно насколько хватит - Traform проглотил список из 999, на 9999 уже упал; Generate на таких объемах уходит в закат - честно лень было ждать, прибил процесс но предложение по публикации в Танке в силе - именно в учебных целях )))

Похожие вопросы

Обсуждают сегодня

@Benzenoid can you tell me the easiest, and safest way to bu.y HEX now?
Živa Žena
20
This is a question from my wife who make a fortune with memes 😂😂 About the Migration and Tokens: 1. How will the old tokens be migrated to the new $LGCYX network? What is th...
🍿 °anton°
2
What is the Dex situation? Agora team started with the Pnetwork for their dex which helped them both with integration. It’s completed but as you can see from the Pnetwork ann...
Ben
1
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
@lozuk how do I get my phex copies of my ehex from a atomic wallet, to move to my rabby?
Justfrontin 👀
11
Hello, Is iExec also part of the "inception program" or another one ? Would it be a name to qualified the nature of the relationship between iExec and Nvidia? And does Secret ...
Ñïķøłäś
8
Ready for some fun AND a chance to win TKO Tokens? Join us for exciting minigames in our Telegram group! 🕒 Don’t miss out—games start on today 25 October 2024, at 8 PM! Ge...
Milkyway | Tokocrypto
255
any reference of this implementation?
BitBuddha
29
Also, why can’t the community have a vote/ say when it comes to initiatives like buybacks. Isn’t the point of crypto decentralisation? Don’t we deserve input as long term supp...
👨🏽‍🦰
13
Hi guys, any problem with Pulsebrige? Trying to transfer from wETH to ETH. First it tells me to connect my metamask "through mobile app" not desktop. Then I did and confirmed ...
Snowflakecrypto
13
Карта сайта