Hacker News

Trampolining Nix ma GenericClosure

Fa'amatalaga

13 min read Via blog.kleisli.io

Mewayz Team

Editorial Team

Hacker News

Fa'asa'olotoina Malosiaga: Mai le Fa'aputuga loloto i le Maualuluga Lelei

I le lalolagi polokalame fa'atino, aemaise lava i totonu o le fa'alapotopotoga fa'anatura o le Nix, o le toe fa'afoliga ose poloka faufale fa'avae. O le auala tatou te uia ai faʻamaumauga faʻapitoa, faʻatatauina faʻalagolago, ma fausia faʻamatalaga faʻapitoa. Ae ui i lea, o lenei malosiaga e sau ma se faʻalavelave masani: o le loloto o le toe faʻafoʻi e mafai ona taʻitaʻia ai le faʻaputuina o mea, taofi au fau ma iloiloga faʻafuaseʻi. I le masani ai, e mafai e le au atiaʻe ona aapa atu mo se metotia e taʻua o le trampolining e faʻaliliu ai le faʻaogaina o telefoni i totonu o se matasele faifaipea, aloese mai le faʻaputuina o faaputuga. Ae fa'afefea pe a iai se isi tagata, Nix-centric auala e taulimaina ai lenei mea? Ulufale i totonu `lib.customisation.genericClosure`, o se galuega mamana i totonu o le faletusi masani a Nixpkgs e maua ai se auala fa'atulagaina ma lelei e fa'atautaia ai le fa'agasolo o fa'amaumauga e aunoa ma le popole tele.

Malamalama i le Faʻafitauli Toe Faʻafouina i Nix

I lona 'autu, e fa'aigoaina e se galuega toe fa'afo'i fa'atasi ma finauga fa'aopoopo se'ia ausia se tulaga fa'avae. O telefoni ta'itasi e fa'aaogaina se vaega o le fa'aputuga telefoni a le polokalama. Pe a ta'ua e se galuega ia lava faafe-fe-mo se faataitaiga, pe a sopoia se laau matua loloto o faalagolago-e mafai ona vaivai le faaputuga, e iu ai i se faaputuga o mea sese sese. I le Nix, e sili ona taua pe a suʻesuʻeina faʻalavelave lavelave poʻo faiga faʻavae. E ui o le trampolining o se fofo aoga (pe a toe faʻafoʻi mai e se galuega se thunk nai lo le faia o se valaau tuusaʻo, ona iloilo lea i se matasele), e mafai ona lagona e pei o se fofo. E manaʻomia le afifiina o lau faʻamatalaga i se mamanu patino, lea e mafai ona faʻafefe ai le faʻamoemoe o le code. Ua fa'atupuina e le fa'alapotopotoga a le Nix se meafaigaluega fa'apitoa mo nei fa'aaliga.

Ma'eu le lauteleClosure Trampolines mo oe

O le galuega `genericClosure` i le `nixpkgs/lib` ua mamanuina e fausia ai se tapunia o aitema e faavae i luga o se seti amata ma se galuega e fuafua ai sui. O lona saini e manaʻomia ai oe e tuʻuina atu se lisi muamua o mea "amata" ma se galuega "operator". O le togafiti fa'ataulāitu o lo'o taoto ile auala e fa'agaioi ai: 'genericClosure' fa'alotoifale fa'afoe se laina o mea e fa'agasolo. E fa'aaoga pea le galuega fa'atino i mea ta'itasi i le laina e fa'atupu ai ona sui, fa'aopoopo i le laina pe a le'i va'aia muamua. E fa'aauau pea lenei faiga se'ia leai ni mea fou e gaosia. O le mea e sili ona taua, o se faiga faifaipea, ae le o se faʻasologa. O lo'o fa'ata'amilomilo ai le savaliga atoa, pulea le tulaga i se fa'aputuga fa'aputugā fa'amaumauga (le laina ma se seti o mea na asia) nai lo le fa'alagolago i le fa'aputuga telefoni.

  • Amata Seti: E te tu'uina atu se lisi o mea muamua o le a fausia ai le tapuni.
  • Operator Function: O lenei galuega e ave se mea e tasi ma toe faafoi mai se lisi o ona sui tuusa'o po'o fa'alagolago.
  • Otometi To'esea: `genericClosure` e otometi lava ona siaki po'o fea aitema na fa'agaioia, e taofia ai fa'agasolo e le i'u ma le tele o galuega.
  • Fa'atonu Fa'atonu: E fa'agasolo ai mea i se tulaga lautele-muamua, lea e masani ona mana'omia pe a feagai ma kalafi fa'alagolago.

O se Fa'ata'ita'iga Fa'atino: Fausiaina o se Tapuni Fa'alagolago

Va'ai faalemafaufau o lo'o e fa'amalamalamaina se vaega o polokalame i totonu ole Mewayz modular business OS. O lenei vaega e iai fa'alagolago, ma o na fa'alagolago e iai a latou lava fa'alagolago. I le fa'aogaina o le 'genericClosure', e mafai ona e fa'avasega lelei le seti atoa o vaega e mana'omia.

I Mewayz, i le mea e sili ona taua, o le malamalama i le kalafi faʻalagolago atoa o se pisinisi pisinisi e taua mo le faʻapipiʻiina ma le toe gaosia. O le 'genericClosure' e maua ai le afi fa'atonu e fa'atatau lelei le kalafi.

O se fa'amatalaga fa'afaigofie a le Nix e fa'aalia ai lenei mea:

{lib}: tuu # O se faʻatusa faigofie o se vaega ma se igoa ma faʻalagolago. mkComp = igoa: deps: { ki = igoa; tofi deps; }; # Fa'amatala se kalafi vaega la'ititi. componentA = mkComp "A" [ ]; componentB = mkComp "B" [ ]; coreModule = mkComp "Autu" [ componentA componentB ]; appModule = mkComp "App" [coreModule]; # Ole galuega fa'atino mo genericClosure. # E mana'omia se vaega ma toe fa'afo'i ona fa'alagolago sa'o. getDeps = aitema: faafanua (dep: {key = dep.key; }) item.deps; # Fausia le tapunia atoa amata mai le appModule. fullClosure = lib.customisation.genericClosure { startSet = [ { ki = appModule.key; } ]; operator = getDeps; }; i totonu tapuni atoa

O lenei fa'ailoga e maua ai se lisi o lo'o iai vaega 'App', 'Core', 'A', ma le 'B'. O le galuega `genericClosure` na amata i le `App`, fa'aaoga le `getDeps` e su'e ai lona fa'alagolago (`Core`), ona fa'agasolo lea o le `Core` e su'e ai le `A` ma le `B`, ma mulimuli ane fa'agasolo le `A` ma le `B` (e leai ni fa'alagolago), ma maua ai le lisi atoa, mafolafola o vaega uma e mana'omia.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Ta'afiaina Idiomatic Nix mo Robust Systems

E ala i le fa'aogaina o le `genericClosure', ua e si'itia mai le ad-hoc recursion ma le trampolining manual i se fa'ata'ita'iga, malosi, ma fa'amaonia lelei. E fa'afaigofie ai lau fa'ailoga ma fa'aitiitia ai mea sese, aemaise lava pe a feagai ma fa'amatalaga lavelave, fa'apipi'i. Mo faʻavae e pei o Mewayz, o loʻo fausia i luga o mataupu faavae a Nix mo le faʻamaoni ma le toe faʻaleleia, o le faʻaaogaina o ia mea faʻapitoa e taua. E fa'amautinoaina o le fa'atonuga autu mo le fa'apipi'iina o modules ma o latou fa'alagolago e lelei ma fa'alauteleina, e puipuia ai fa'aletonu o iloiloga e ono tula'i mai i le loloto o le toe fa'afoliga ma saofagā i le mautu atoa o le faiga. O le isi taimi e te iloa ai o le a e tusia se galuega fa'afo'i loloto i le Nix, mafaufau pe mafai e le 'genericClosure' ona tu'uina atu se trampoline i se vaifofo mama.

Fesili e Fai soo

Fa'asa'olotoina Malosiaga: Mai le Fa'aputuga loloto i le Maualuluga Lelei

I le lalolagi polokalame fa'atino, aemaise lava i totonu o le fa'alapotopotoga fa'anatura o le Nix, o le toe fa'afoliga ose poloka faufale fa'avae. O le auala tatou te uia ai faʻamaumauga faʻapitoa, faʻatatauina faʻalagolago, ma fausia faʻamatalaga faʻapitoa. Ae ui i lea, o lenei malosiaga e sau ma se faʻalavelave masani: o le loloto o le toe faʻafoʻi e mafai ona taʻitaʻia ai le faʻaputuina o mea, taofi au fau ma iloiloga faʻafuaseʻi. I le masani ai, e mafai e le au atiaʻe ona aapa atu mo se metotia e taʻua o le trampolining e faʻaliliu ai le faʻaogaina o telefoni i totonu o se matasele faifaipea, aloese mai le faʻaputuina o faaputuga. Ae fa'afefea pe a iai se isi tagata, Nix-centric auala e taulimaina ai lenei mea? Ulufale i totonu `lib.customisation.genericClosure`, o se galuega mamana i totonu o le faletusi masani a Nixpkgs e maua ai se auala fa'atulagaina ma lelei e fa'atautaia ai le fa'agasolo o fa'amaumauga e aunoa ma le popole tele.

Malamalama i le Faʻafitauli Toe Faʻafouina i Nix

I lona 'autu, e fa'aigoaina e se galuega toe fa'afo'i fa'atasi ma finauga fa'aopoopo se'ia ausia se tulaga fa'avae. O telefoni ta'itasi e fa'aaogaina se vaega o le fa'aputuga telefoni a le polokalama. Pe a ta'ua e se galuega ia lava faafe-fe-mo se faataitaiga, pe a sopoia se laau matua loloto o faalagolago-e mafai ona vaivai le faaputuga, e iu ai i se faaputuga o mea sese sese. I le Nix, e sili ona taua pe a suʻesuʻeina faʻalavelave lavelave poʻo faiga faʻavae. E ui o le trampolining o se fofo aoga (pe a toe faʻafoʻi mai e se galuega se thunk nai lo le faia o se valaau tuusaʻo, ona iloilo lea i se matasele), e mafai ona lagona e pei o se fofo. E manaʻomia le afifiina o lau faʻamatalaga i se mamanu patino, lea e mafai ona faʻafefe ai le faʻamoemoe o le code. Ua fa'atupuina e le fa'alapotopotoga a le Nix se meafaigaluega fa'apitoa mo nei fa'aaliga.

Ma'eu le lauteleClosure Trampolines mo Oe

O le galuega `genericClosure` i le `nixpkgs/lib` ua mamanuina e fausia ai se tapunia o aitema e faavae i luga o se seti amata ma se galuega e fuafua ai sui. O lona saini e manaʻomia ai oe e tuʻuina atu se lisi muamua o mea "amata" ma se galuega "operator". O le togafiti fa'ataulāitu o lo'o taoto ile auala e fa'agaioi ai: 'genericClosure' fa'alotoifale fa'afoe se laina o mea e fa'agasolo. E fa'aaoga pea le galuega fa'atino i mea ta'itasi i le laina e fa'atupu ai ona sui, fa'aopoopo i le laina pe a le'i va'aia muamua. E fa'aauau pea lenei faiga se'ia leai ni mea fou e gaosia. O le mea e sili ona taua, o se faiga faifaipea, ae le o se faʻasologa. O lo'o fa'ata'amilomilo ai le savaliga atoa, pulea le tulaga i se fa'aputuga fa'aputugā fa'amaumauga (le laina ma se seti o mea na asia) nai lo le fa'alagolago i le fa'aputuga telefoni.

O se Fa'ata'ita'iga Fa'atino: Fausiaina o se Tapuni Fa'alagolago

Va'ai faalemafaufau o lo'o e fa'amalamalamaina se vaega o polokalame i totonu ole Mewayz modular business OS. O lenei vaega e iai fa'alagolago, ma o na fa'alagolago e iai a latou lava fa'alagolago. I le fa'aogaina o le 'genericClosure', e mafai ona e fa'avasega lelei le seti atoa o vaega e mana'omia.

Ta'afiaina Idiomatic Nix mo Robust Systems

E ala i le fa'aogaina o le `genericClosure', ua e si'itia mai le ad-hoc recursion ma le trampolining manual i se fa'ata'ita'iga, malosi, ma fa'amaonia lelei. E fa'afaigofie ai lau fa'ailoga ma fa'aitiitia ai mea sese, aemaise lava pe a feagai ma fa'amatalaga lavelave, fa'apipi'i. Mo faʻavae e pei o Mewayz, o loʻo fausia i luga o mataupu faavae a Nix mo le faʻamaoni ma le toe faʻaleleia, o le faʻaaogaina o ia mea faʻapitoa e taua. E fa'amautinoaina o le fa'atonuga autu mo le fa'apipi'iina o modules ma o latou fa'alagolago e lelei ma fa'alauteleina, e puipuia ai fa'aletonu o iloiloga e ono tula'i mai i le loloto o le toe fa'afoliga ma saofagā i le mautu atoa o le faiga. O le isi taimi e te iloa ai o le a e tusia se galuega fa'afo'i loloto i le Nix, mafaufau pe mafai e le 'genericClosure' ona tu'uina atu se trampoline i se vaifofo mama.

Fa'amama lau Pisinisi ma Mewayz

Mewayz aumai 208 pisinisi modules i le tasi tulaga — CRM, invoicing, project management, and more. Auai i le 138,000+ tagata fa'aoga na fa'afaigofie a latou galuega.

Amata Saoloto i le Aso →

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime