Applying a function to a nested listNested List ProductExtract function argumentsCreating a simple function to compute the average of the difference between pairs of elements in an arraySorting non-numerical listsExtract part of list by reading it in a cyclic mannerApplying a function along the desired dimensions of a n-dimensional arrayManipulating Elements in a Triple-Nested ListApplying function to all elements of the list of listApplying a function to a list of symbolic ratiosApplying a function to a list (compounding)

How to handle DM constantly stealing everything from sleeping characters?

if i accidentally leaked my schools ip address and someone d doses my school am i at fault

how to find out if there's files in a folder and exit accordingly (in KSH)

Why is there a cap on 401k contributions?

Do Rabbis admit emotional involvement in their rulings?

resoldering copper waste pipe

How can I test a shell script in a "safe environment" to avoid harm to my computer?

Not taking the bishop by the knight, why?

Probability of taking balls without replacement from a bag question

Passport stamps art, can it be done?

How is Arya still alive?

Was there a contingency plan in place if Little Boy failed to detonate?

Is there a need for better software for writers?

How can I make parentheses stick to formula?

How do I minimise waste on a flight?

Was Mohammed the most popular first name for boys born in Berlin in 2018?

What does the "DS" in "DS-..." US visa application forms stand for?

Employee is self-centered and affects the team negatively

Unicode-math and mathrm result in missing symbols

Is there any evidence to support the claim that the United States was "suckered into WW1" by Zionists, made by Benjamin Freedman in his 1961 speech

What replaces x86 intrinsics for C when Apple ditches Intel CPUs for their own chips?

What can cause an unfrozen indoor copper drain pipe to crack?

Can I bring back Planetary Romance as a genre?

Gift for mentor after his thesis defense?



Applying a function to a nested list


Nested List ProductExtract function argumentsCreating a simple function to compute the average of the difference between pairs of elements in an arraySorting non-numerical listsExtract part of list by reading it in a cyclic mannerApplying a function along the desired dimensions of a n-dimensional arrayManipulating Elements in a Triple-Nested ListApplying function to all elements of the list of listApplying a function to a list of symbolic ratiosApplying a function to a list (compounding)













4












$begingroup$


Say I have a list:



l = a, b, c, d 


I now want to apply a function, call it F to that list in a way that I go from the lowest to highest level, i.e.



F[F[F[a,b], c] , d]


Is there a function in Mathematica which does exactly that?










share|improve this question











$endgroup$







  • 4




    $begingroup$
    Why does the order for d and c change, and not for a and b?
    $endgroup$
    – Carl Woll
    Apr 29 at 22:30










  • $begingroup$
    My mistake, thank you for spotting that. I edited it.
    $endgroup$
    – amator2357
    Apr 29 at 22:54










  • $begingroup$
    In your example it does not matter whether F is applied from the lowest level up or reverse. It it matters it may affect applicable solutions.
    $endgroup$
    – Kuba
    Apr 30 at 6:27















4












$begingroup$


Say I have a list:



l = a, b, c, d 


I now want to apply a function, call it F to that list in a way that I go from the lowest to highest level, i.e.



F[F[F[a,b], c] , d]


Is there a function in Mathematica which does exactly that?










share|improve this question











$endgroup$







  • 4




    $begingroup$
    Why does the order for d and c change, and not for a and b?
    $endgroup$
    – Carl Woll
    Apr 29 at 22:30










  • $begingroup$
    My mistake, thank you for spotting that. I edited it.
    $endgroup$
    – amator2357
    Apr 29 at 22:54










  • $begingroup$
    In your example it does not matter whether F is applied from the lowest level up or reverse. It it matters it may affect applicable solutions.
    $endgroup$
    – Kuba
    Apr 30 at 6:27













4












4








4





$begingroup$


Say I have a list:



l = a, b, c, d 


I now want to apply a function, call it F to that list in a way that I go from the lowest to highest level, i.e.



F[F[F[a,b], c] , d]


Is there a function in Mathematica which does exactly that?










share|improve this question











$endgroup$




Say I have a list:



l = a, b, c, d 


I now want to apply a function, call it F to that list in a way that I go from the lowest to highest level, i.e.



F[F[F[a,b], c] , d]


Is there a function in Mathematica which does exactly that?







list-manipulation functions






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Apr 29 at 22:53







amator2357

















asked Apr 29 at 21:53









amator2357amator2357

61610




61610







  • 4




    $begingroup$
    Why does the order for d and c change, and not for a and b?
    $endgroup$
    – Carl Woll
    Apr 29 at 22:30










  • $begingroup$
    My mistake, thank you for spotting that. I edited it.
    $endgroup$
    – amator2357
    Apr 29 at 22:54










  • $begingroup$
    In your example it does not matter whether F is applied from the lowest level up or reverse. It it matters it may affect applicable solutions.
    $endgroup$
    – Kuba
    Apr 30 at 6:27












  • 4




    $begingroup$
    Why does the order for d and c change, and not for a and b?
    $endgroup$
    – Carl Woll
    Apr 29 at 22:30










  • $begingroup$
    My mistake, thank you for spotting that. I edited it.
    $endgroup$
    – amator2357
    Apr 29 at 22:54










  • $begingroup$
    In your example it does not matter whether F is applied from the lowest level up or reverse. It it matters it may affect applicable solutions.
    $endgroup$
    – Kuba
    Apr 30 at 6:27







4




4




$begingroup$
Why does the order for d and c change, and not for a and b?
$endgroup$
– Carl Woll
Apr 29 at 22:30




$begingroup$
Why does the order for d and c change, and not for a and b?
$endgroup$
– Carl Woll
Apr 29 at 22:30












$begingroup$
My mistake, thank you for spotting that. I edited it.
$endgroup$
– amator2357
Apr 29 at 22:54




$begingroup$
My mistake, thank you for spotting that. I edited it.
$endgroup$
– amator2357
Apr 29 at 22:54












$begingroup$
In your example it does not matter whether F is applied from the lowest level up or reverse. It it matters it may affect applicable solutions.
$endgroup$
– Kuba
Apr 30 at 6:27




$begingroup$
In your example it does not matter whether F is applied from the lowest level up or reverse. It it matters it may affect applicable solutions.
$endgroup$
– Kuba
Apr 30 at 6:27










4 Answers
4






active

oldest

votes


















7












$begingroup$

Replace[l, x_List :> F[x], All]



F[F[F[a, b], c], d]




Also



ClearAll[f]
f[Except[_List, x_]] := x;
MapAll[f, l]



f[f[f[a, b], c], d]







share|improve this answer









$endgroup$




















    6












    $begingroup$

    Another possibility, if you want just lists to acquire the F wrapper:



    l /. List -> F@*List



    F[F[F[a, b], c], d]







    share|improve this answer









    $endgroup$




















      4












      $begingroup$

      F@*Reverse@Map[F@*Reverse, l, -2]



      F[d, F[c, F[b, a]]]




      Fold[F[#2, #1] &, Flatten[l]]



      F[d, F[c, F[b, a]]]







      share|improve this answer









      $endgroup$












      • $begingroup$
        I think that Flatten works in this trivial case but it will not "find" the levels in a more complex situation
        $endgroup$
        – J42161217
        Apr 29 at 22:41


















      1












      $begingroup$

      This works:



      a, b, c, d //. s_?ListQ, t_?(Not@*ListQ) :> f[s], t // f


      It's a bit hackish because of the separate invocation of f at the end, but it returns the desired result.






      share|improve this answer









      $endgroup$













        Your Answer








        StackExchange.ready(function()
        var channelOptions =
        tags: "".split(" "),
        id: "387"
        ;
        initTagRenderer("".split(" "), "".split(" "), channelOptions);

        StackExchange.using("externalEditor", function()
        // Have to fire editor after snippets, if snippets enabled
        if (StackExchange.settings.snippets.snippetsEnabled)
        StackExchange.using("snippets", function()
        createEditor();
        );

        else
        createEditor();

        );

        function createEditor()
        StackExchange.prepareEditor(
        heartbeatType: 'answer',
        autoActivateHeartbeat: false,
        convertImagesToLinks: false,
        noModals: true,
        showLowRepImageUploadWarning: true,
        reputationToPostImages: null,
        bindNavPrevention: true,
        postfix: "",
        imageUploader:
        brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
        contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
        allowUrls: true
        ,
        onDemand: true,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        );



        );













        draft saved

        draft discarded


















        StackExchange.ready(
        function ()
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f197329%2fapplying-a-function-to-a-nested-list%23new-answer', 'question_page');

        );

        Post as a guest















        Required, but never shown

























        4 Answers
        4






        active

        oldest

        votes








        4 Answers
        4






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        7












        $begingroup$

        Replace[l, x_List :> F[x], All]



        F[F[F[a, b], c], d]




        Also



        ClearAll[f]
        f[Except[_List, x_]] := x;
        MapAll[f, l]



        f[f[f[a, b], c], d]







        share|improve this answer









        $endgroup$

















          7












          $begingroup$

          Replace[l, x_List :> F[x], All]



          F[F[F[a, b], c], d]




          Also



          ClearAll[f]
          f[Except[_List, x_]] := x;
          MapAll[f, l]



          f[f[f[a, b], c], d]







          share|improve this answer









          $endgroup$















            7












            7








            7





            $begingroup$

            Replace[l, x_List :> F[x], All]



            F[F[F[a, b], c], d]




            Also



            ClearAll[f]
            f[Except[_List, x_]] := x;
            MapAll[f, l]



            f[f[f[a, b], c], d]







            share|improve this answer









            $endgroup$



            Replace[l, x_List :> F[x], All]



            F[F[F[a, b], c], d]




            Also



            ClearAll[f]
            f[Except[_List, x_]] := x;
            MapAll[f, l]



            f[f[f[a, b], c], d]








            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Apr 29 at 23:34









            kglrkglr

            191k10212431




            191k10212431





















                6












                $begingroup$

                Another possibility, if you want just lists to acquire the F wrapper:



                l /. List -> F@*List



                F[F[F[a, b], c], d]







                share|improve this answer









                $endgroup$

















                  6












                  $begingroup$

                  Another possibility, if you want just lists to acquire the F wrapper:



                  l /. List -> F@*List



                  F[F[F[a, b], c], d]







                  share|improve this answer









                  $endgroup$















                    6












                    6








                    6





                    $begingroup$

                    Another possibility, if you want just lists to acquire the F wrapper:



                    l /. List -> F@*List



                    F[F[F[a, b], c], d]







                    share|improve this answer









                    $endgroup$



                    Another possibility, if you want just lists to acquire the F wrapper:



                    l /. List -> F@*List



                    F[F[F[a, b], c], d]








                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Apr 30 at 0:10









                    Carl WollCarl Woll

                    77.7k3102204




                    77.7k3102204





















                        4












                        $begingroup$

                        F@*Reverse@Map[F@*Reverse, l, -2]



                        F[d, F[c, F[b, a]]]




                        Fold[F[#2, #1] &, Flatten[l]]



                        F[d, F[c, F[b, a]]]







                        share|improve this answer









                        $endgroup$












                        • $begingroup$
                          I think that Flatten works in this trivial case but it will not "find" the levels in a more complex situation
                          $endgroup$
                          – J42161217
                          Apr 29 at 22:41















                        4












                        $begingroup$

                        F@*Reverse@Map[F@*Reverse, l, -2]



                        F[d, F[c, F[b, a]]]




                        Fold[F[#2, #1] &, Flatten[l]]



                        F[d, F[c, F[b, a]]]







                        share|improve this answer









                        $endgroup$












                        • $begingroup$
                          I think that Flatten works in this trivial case but it will not "find" the levels in a more complex situation
                          $endgroup$
                          – J42161217
                          Apr 29 at 22:41













                        4












                        4








                        4





                        $begingroup$

                        F@*Reverse@Map[F@*Reverse, l, -2]



                        F[d, F[c, F[b, a]]]




                        Fold[F[#2, #1] &, Flatten[l]]



                        F[d, F[c, F[b, a]]]







                        share|improve this answer









                        $endgroup$



                        F@*Reverse@Map[F@*Reverse, l, -2]



                        F[d, F[c, F[b, a]]]




                        Fold[F[#2, #1] &, Flatten[l]]



                        F[d, F[c, F[b, a]]]








                        share|improve this answer












                        share|improve this answer



                        share|improve this answer










                        answered Apr 29 at 22:30









                        Henrik SchumacherHenrik Schumacher

                        61.8k585172




                        61.8k585172











                        • $begingroup$
                          I think that Flatten works in this trivial case but it will not "find" the levels in a more complex situation
                          $endgroup$
                          – J42161217
                          Apr 29 at 22:41
















                        • $begingroup$
                          I think that Flatten works in this trivial case but it will not "find" the levels in a more complex situation
                          $endgroup$
                          – J42161217
                          Apr 29 at 22:41















                        $begingroup$
                        I think that Flatten works in this trivial case but it will not "find" the levels in a more complex situation
                        $endgroup$
                        – J42161217
                        Apr 29 at 22:41




                        $begingroup$
                        I think that Flatten works in this trivial case but it will not "find" the levels in a more complex situation
                        $endgroup$
                        – J42161217
                        Apr 29 at 22:41











                        1












                        $begingroup$

                        This works:



                        a, b, c, d //. s_?ListQ, t_?(Not@*ListQ) :> f[s], t // f


                        It's a bit hackish because of the separate invocation of f at the end, but it returns the desired result.






                        share|improve this answer









                        $endgroup$

















                          1












                          $begingroup$

                          This works:



                          a, b, c, d //. s_?ListQ, t_?(Not@*ListQ) :> f[s], t // f


                          It's a bit hackish because of the separate invocation of f at the end, but it returns the desired result.






                          share|improve this answer









                          $endgroup$















                            1












                            1








                            1





                            $begingroup$

                            This works:



                            a, b, c, d //. s_?ListQ, t_?(Not@*ListQ) :> f[s], t // f


                            It's a bit hackish because of the separate invocation of f at the end, but it returns the desired result.






                            share|improve this answer









                            $endgroup$



                            This works:



                            a, b, c, d //. s_?ListQ, t_?(Not@*ListQ) :> f[s], t // f


                            It's a bit hackish because of the separate invocation of f at the end, but it returns the desired result.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Apr 29 at 23:03









                            ShredderroyShredderroy

                            1,6201117




                            1,6201117



























                                draft saved

                                draft discarded
















































                                Thanks for contributing an answer to Mathematica Stack Exchange!


                                • Please be sure to answer the question. Provide details and share your research!

                                But avoid


                                • Asking for help, clarification, or responding to other answers.

                                • Making statements based on opinion; back them up with references or personal experience.

                                Use MathJax to format equations. MathJax reference.


                                To learn more, see our tips on writing great answers.




                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function ()
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f197329%2fapplying-a-function-to-a-nested-list%23new-answer', 'question_page');

                                );

                                Post as a guest















                                Required, but never shown





















































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown

































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown







                                Popular posts from this blog

                                Club Baloncesto Breogán Índice Historia | Pavillón | Nome | O Breogán na cultura popular | Xogadores | Adestradores | Presidentes | Palmarés | Historial | Líderes | Notas | Véxase tamén | Menú de navegacióncbbreogan.galCadroGuía oficial da ACB 2009-10, páxina 201Guía oficial ACB 1992, páxina 183. Editorial DB.É de 6.500 espectadores sentados axeitándose á última normativa"Estudiantes Junior, entre as mellores canteiras"o orixinalHemeroteca El Mundo Deportivo, 16 setembro de 1970, páxina 12Historia do BreogánAlfredo Pérez, o último canoneiroHistoria C.B. BreogánHemeroteca de El Mundo DeportivoJimmy Wright, norteamericano do Breogán deixará Lugo por ameazas de morteResultados de Breogán en 1986-87Resultados de Breogán en 1990-91Ficha de Velimir Perasović en acb.comResultados de Breogán en 1994-95Breogán arrasa al Barça. "El Mundo Deportivo", 27 de setembro de 1999, páxina 58CB Breogán - FC BarcelonaA FEB invita a participar nunha nova Liga EuropeaCharlie Bell na prensa estatalMáximos anotadores 2005Tempada 2005-06 : Tódolos Xogadores da Xornada""Non quero pensar nunha man negra, mais pregúntome que está a pasar""o orixinalRaúl López, orgulloso dos xogadores, presume da boa saúde económica do BreogánJulio González confirma que cesa como presidente del BreogánHomenaxe a Lisardo GómezA tempada do rexurdimento celesteEntrevista a Lisardo GómezEl COB dinamita el Pazo para forzar el quinto (69-73)Cafés Candelas, patrocinador del CB Breogán"Suso Lázare, novo presidente do Breogán"o orixinalCafés Candelas Breogán firma el mayor triunfo de la historiaEl Breogán realizará 17 homenajes por su cincuenta aniversario"O Breogán honra ao seu fundador e primeiro presidente"o orixinalMiguel Giao recibiu a homenaxe do PazoHomenaxe aos primeiros gladiadores celestesO home que nos amosa como ver o Breo co corazónTita Franco será homenaxeada polos #50anosdeBreoJulio Vila recibirá unha homenaxe in memoriam polos #50anosdeBreo"O Breogán homenaxeará aos seus aboados máis veteráns"Pechada ovación a «Capi» Sanmartín e Ricardo «Corazón de González»Homenaxe por décadas de informaciónPaco García volve ao Pazo con motivo do 50 aniversario"Resultados y clasificaciones""O Cafés Candelas Breogán, campión da Copa Princesa""O Cafés Candelas Breogán, equipo ACB"C.B. Breogán"Proxecto social"o orixinal"Centros asociados"o orixinalFicha en imdb.comMario Camus trata la recuperación del amor en 'La vieja música', su última película"Páxina web oficial""Club Baloncesto Breogán""C. B. Breogán S.A.D."eehttp://www.fegaba.com

                                Vilaño, A Laracha Índice Patrimonio | Lugares e parroquias | Véxase tamén | Menú de navegación43°14′52″N 8°36′03″O / 43.24775, -8.60070

                                Cegueira Índice Epidemioloxía | Deficiencia visual | Tipos de cegueira | Principais causas de cegueira | Tratamento | Técnicas de adaptación e axudas | Vida dos cegos | Primeiros auxilios | Crenzas respecto das persoas cegas | Crenzas das persoas cegas | O neno deficiente visual | Aspectos psicolóxicos da cegueira | Notas | Véxase tamén | Menú de navegación54.054.154.436928256blindnessDicionario da Real Academia GalegaPortal das Palabras"International Standards: Visual Standards — Aspects and Ranges of Vision Loss with Emphasis on Population Surveys.""Visual impairment and blindness""Presentan un plan para previr a cegueira"o orixinalACCDV Associació Catalana de Cecs i Disminuïts Visuals - PMFTrachoma"Effect of gene therapy on visual function in Leber's congenital amaurosis"1844137110.1056/NEJMoa0802268Cans guía - os mellores amigos dos cegosArquivadoEscola de cans guía para cegos en Mortágua, PortugalArquivado"Tecnología para ciegos y deficientes visuales. Recopilación de recursos gratuitos en la Red""Colorino""‘COL.diesis’, escuchar los sonidos del color""COL.diesis: Transforming Colour into Melody and Implementing the Result in a Colour Sensor Device"o orixinal"Sistema de desarrollo de sinestesia color-sonido para invidentes utilizando un protocolo de audio""Enseñanza táctil - geometría y color. Juegos didácticos para niños ciegos y videntes""Sistema Constanz"L'ocupació laboral dels cecs a l'Estat espanyol està pràcticament equiparada a la de les persones amb visió, entrevista amb Pedro ZuritaONCE (Organización Nacional de Cegos de España)Prevención da cegueiraDescrición de deficiencias visuais (Disc@pnet)Braillín, un boneco atractivo para calquera neno, con ou sen discapacidade, que permite familiarizarse co sistema de escritura e lectura brailleAxudas Técnicas36838ID00897494007150-90057129528256DOID:1432HP:0000618D001766C10.597.751.941.162C97109C0155020