Separation of concerns The Next CEO of Stack OverflowTail recursion - Scala (any language else)Does functional programming replace GoF design patterns?Is the Scala 2.8 collections library a case of “the longest suicide note in history”?Is functional GUI programming possible?Large-scale design in Haskell?What is the Scala identifier “implicitly”?Right Arrow meanings in ScalaWhat is the formal difference in Scala between braces and parentheses, and when should they be used?What is the apply function in Scala?Are polymorphic functions “restrictive” in Scala?Why I need a new primitive?

Is a stroke of luck acceptable after a series of unfavorable events?

% symbol leads to superlong (forever?) compilations

Was a professor correct to chastise me for writing "Prof. X" rather than "Professor X"?

How to start emacs in "nothing" mode (`fundamental-mode`)

Why is there a PLL in CPU?

Is the concept of a "numerable" fiber bundle really useful or an empty generalization?

When airplanes disconnect from a tanker during air to air refueling, why do they bank so sharply to the right?

Science fiction (dystopian) short story set after WWIII

Rotate a column

What is the point of a new vote on May's deal when the indicative votes suggest she will not win?

Why does standard notation not preserve intervals (visually)

Why do remote companies require working in the US?

What is the purpose of the Evocation wizard's Potent Cantrip feature?

Can the Reverse Gravity spell affect the Meteor Swarm spell?

Return the Closest Prime Number

What does this shorthand mean?

Fastest way to shutdown Ubuntu Mate 18.10

Visit to the USA with ESTA approved before trip to Iran

How did people program for Consoles with multiple CPUs?

Is it my responsibility to learn a new technology in my own time my employer wants to implement?

Text adventure game code

How can I quit an app using Terminal?

Can a single photon have an energy density?

How to Reset Passwords on Multiple Websites Easily?



Separation of concerns



The Next CEO of Stack OverflowTail recursion - Scala (any language else)Does functional programming replace GoF design patterns?Is the Scala 2.8 collections library a case of “the longest suicide note in history”?Is functional GUI programming possible?Large-scale design in Haskell?What is the Scala identifier “implicitly”?Right Arrow meanings in ScalaWhat is the formal difference in Scala between braces and parentheses, and when should they be used?What is the apply function in Scala?Are polymorphic functions “restrictive” in Scala?Why I need a new primitive?










1















I am trying to learn functional programming in scala with book FPiS in chapter 5 the author mentions:




A major theme in functional programming is separation of concerns and
seperating program description from evaluation.




What does it mean? Could someone give an example?










share|improve this question



















  • 1





    I think separation of concerns is a major topic in any programming language. Based on what I have learned, it means that you should subdivide a program into parts that each (aim to) solve a concern/problem. The parts should be as independent from the other parts as possible.

    – Willem Van Onsem
    May 17 '17 at 9:17











  • What does program description mean?

    – zero_coding
    May 17 '17 at 9:35






  • 1





    a document describing what the program is supposed to do. For instance a program description can be "a system where a person enters orders, and where an employee can mark which orders are completed". Although usually it is of course more extensive.

    – Willem Van Onsem
    May 17 '17 at 9:36







  • 2





    If you read the first chapter (about the coffee shop) that is a good example. The buyCoffee function is not concerned with the transaction, etc.

    – Tom
    May 17 '17 at 9:38















1















I am trying to learn functional programming in scala with book FPiS in chapter 5 the author mentions:




A major theme in functional programming is separation of concerns and
seperating program description from evaluation.




What does it mean? Could someone give an example?










share|improve this question



















  • 1





    I think separation of concerns is a major topic in any programming language. Based on what I have learned, it means that you should subdivide a program into parts that each (aim to) solve a concern/problem. The parts should be as independent from the other parts as possible.

    – Willem Van Onsem
    May 17 '17 at 9:17











  • What does program description mean?

    – zero_coding
    May 17 '17 at 9:35






  • 1





    a document describing what the program is supposed to do. For instance a program description can be "a system where a person enters orders, and where an employee can mark which orders are completed". Although usually it is of course more extensive.

    – Willem Van Onsem
    May 17 '17 at 9:36







  • 2





    If you read the first chapter (about the coffee shop) that is a good example. The buyCoffee function is not concerned with the transaction, etc.

    – Tom
    May 17 '17 at 9:38













1












1








1








I am trying to learn functional programming in scala with book FPiS in chapter 5 the author mentions:




A major theme in functional programming is separation of concerns and
seperating program description from evaluation.




What does it mean? Could someone give an example?










share|improve this question
















I am trying to learn functional programming in scala with book FPiS in chapter 5 the author mentions:




A major theme in functional programming is separation of concerns and
seperating program description from evaluation.




What does it mean? Could someone give an example?







scala functional-programming






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 7 at 14:06









Cœur

19.1k9114155




19.1k9114155










asked May 17 '17 at 9:14









zero_codingzero_coding

8,1132068146




8,1132068146







  • 1





    I think separation of concerns is a major topic in any programming language. Based on what I have learned, it means that you should subdivide a program into parts that each (aim to) solve a concern/problem. The parts should be as independent from the other parts as possible.

    – Willem Van Onsem
    May 17 '17 at 9:17











  • What does program description mean?

    – zero_coding
    May 17 '17 at 9:35






  • 1





    a document describing what the program is supposed to do. For instance a program description can be "a system where a person enters orders, and where an employee can mark which orders are completed". Although usually it is of course more extensive.

    – Willem Van Onsem
    May 17 '17 at 9:36







  • 2





    If you read the first chapter (about the coffee shop) that is a good example. The buyCoffee function is not concerned with the transaction, etc.

    – Tom
    May 17 '17 at 9:38












  • 1





    I think separation of concerns is a major topic in any programming language. Based on what I have learned, it means that you should subdivide a program into parts that each (aim to) solve a concern/problem. The parts should be as independent from the other parts as possible.

    – Willem Van Onsem
    May 17 '17 at 9:17











  • What does program description mean?

    – zero_coding
    May 17 '17 at 9:35






  • 1





    a document describing what the program is supposed to do. For instance a program description can be "a system where a person enters orders, and where an employee can mark which orders are completed". Although usually it is of course more extensive.

    – Willem Van Onsem
    May 17 '17 at 9:36







  • 2





    If you read the first chapter (about the coffee shop) that is a good example. The buyCoffee function is not concerned with the transaction, etc.

    – Tom
    May 17 '17 at 9:38







1




1





I think separation of concerns is a major topic in any programming language. Based on what I have learned, it means that you should subdivide a program into parts that each (aim to) solve a concern/problem. The parts should be as independent from the other parts as possible.

– Willem Van Onsem
May 17 '17 at 9:17





I think separation of concerns is a major topic in any programming language. Based on what I have learned, it means that you should subdivide a program into parts that each (aim to) solve a concern/problem. The parts should be as independent from the other parts as possible.

– Willem Van Onsem
May 17 '17 at 9:17













What does program description mean?

– zero_coding
May 17 '17 at 9:35





What does program description mean?

– zero_coding
May 17 '17 at 9:35




1




1





a document describing what the program is supposed to do. For instance a program description can be "a system where a person enters orders, and where an employee can mark which orders are completed". Although usually it is of course more extensive.

– Willem Van Onsem
May 17 '17 at 9:36






a document describing what the program is supposed to do. For instance a program description can be "a system where a person enters orders, and where an employee can mark which orders are completed". Although usually it is of course more extensive.

– Willem Van Onsem
May 17 '17 at 9:36





2




2





If you read the first chapter (about the coffee shop) that is a good example. The buyCoffee function is not concerned with the transaction, etc.

– Tom
May 17 '17 at 9:38





If you read the first chapter (about the coffee shop) that is a good example. The buyCoffee function is not concerned with the transaction, etc.

– Tom
May 17 '17 at 9:38












2 Answers
2






active

oldest

votes


















2














Here I provided an example of implementing a tail recursion manually. Tail recursion - Scala (any language else)



It is an example of separation of algorithm description and evaluation.
Recursive trait describes only one iteration of some recursive algorithm.
Method interpret knows nothing about algorithm's logic and just runs it until it is finished.
For example you can introduce a delay between iteration or limit the number of iteration without changing the algorithm described in Recursive.






share|improve this answer
































    1














    The key to this is in the phrase




    seperating program description from evaluation




    An example is using a DSL represented by an ADT (that represents the grammar of your DSL) and an interpreter. Because other people are probably better than me in describing this in detail, I'll just link to an example here: http://typelevel.org/cats/datatypes/freemonad.html



    That one uses free monads which are a somewhat hot topic currently but demonstrate very good what you're asking for in my opinion.






    share|improve this answer























      Your Answer






      StackExchange.ifUsing("editor", function ()
      StackExchange.using("externalEditor", function ()
      StackExchange.using("snippets", function ()
      StackExchange.snippets.init();
      );
      );
      , "code-snippets");

      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "1"
      ;
      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: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      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%2fstackoverflow.com%2fquestions%2f44020467%2fseparation-of-concerns%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      2














      Here I provided an example of implementing a tail recursion manually. Tail recursion - Scala (any language else)



      It is an example of separation of algorithm description and evaluation.
      Recursive trait describes only one iteration of some recursive algorithm.
      Method interpret knows nothing about algorithm's logic and just runs it until it is finished.
      For example you can introduce a delay between iteration or limit the number of iteration without changing the algorithm described in Recursive.






      share|improve this answer





























        2














        Here I provided an example of implementing a tail recursion manually. Tail recursion - Scala (any language else)



        It is an example of separation of algorithm description and evaluation.
        Recursive trait describes only one iteration of some recursive algorithm.
        Method interpret knows nothing about algorithm's logic and just runs it until it is finished.
        For example you can introduce a delay between iteration or limit the number of iteration without changing the algorithm described in Recursive.






        share|improve this answer



























          2












          2








          2







          Here I provided an example of implementing a tail recursion manually. Tail recursion - Scala (any language else)



          It is an example of separation of algorithm description and evaluation.
          Recursive trait describes only one iteration of some recursive algorithm.
          Method interpret knows nothing about algorithm's logic and just runs it until it is finished.
          For example you can introduce a delay between iteration or limit the number of iteration without changing the algorithm described in Recursive.






          share|improve this answer















          Here I provided an example of implementing a tail recursion manually. Tail recursion - Scala (any language else)



          It is an example of separation of algorithm description and evaluation.
          Recursive trait describes only one iteration of some recursive algorithm.
          Method interpret knows nothing about algorithm's logic and just runs it until it is finished.
          For example you can introduce a delay between iteration or limit the number of iteration without changing the algorithm described in Recursive.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited May 23 '17 at 11:47









          Community

          11




          11










          answered May 17 '17 at 11:17









          simpadjosimpadjo

          1,4361818




          1,4361818























              1














              The key to this is in the phrase




              seperating program description from evaluation




              An example is using a DSL represented by an ADT (that represents the grammar of your DSL) and an interpreter. Because other people are probably better than me in describing this in detail, I'll just link to an example here: http://typelevel.org/cats/datatypes/freemonad.html



              That one uses free monads which are a somewhat hot topic currently but demonstrate very good what you're asking for in my opinion.






              share|improve this answer



























                1














                The key to this is in the phrase




                seperating program description from evaluation




                An example is using a DSL represented by an ADT (that represents the grammar of your DSL) and an interpreter. Because other people are probably better than me in describing this in detail, I'll just link to an example here: http://typelevel.org/cats/datatypes/freemonad.html



                That one uses free monads which are a somewhat hot topic currently but demonstrate very good what you're asking for in my opinion.






                share|improve this answer

























                  1












                  1








                  1







                  The key to this is in the phrase




                  seperating program description from evaluation




                  An example is using a DSL represented by an ADT (that represents the grammar of your DSL) and an interpreter. Because other people are probably better than me in describing this in detail, I'll just link to an example here: http://typelevel.org/cats/datatypes/freemonad.html



                  That one uses free monads which are a somewhat hot topic currently but demonstrate very good what you're asking for in my opinion.






                  share|improve this answer













                  The key to this is in the phrase




                  seperating program description from evaluation




                  An example is using a DSL represented by an ADT (that represents the grammar of your DSL) and an interpreter. Because other people are probably better than me in describing this in detail, I'll just link to an example here: http://typelevel.org/cats/datatypes/freemonad.html



                  That one uses free monads which are a somewhat hot topic currently but demonstrate very good what you're asking for in my opinion.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered May 17 '17 at 9:36









                  jan0schjan0sch

                  626




                  626



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Stack Overflow!


                      • 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.

                      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%2fstackoverflow.com%2fquestions%2f44020467%2fseparation-of-concerns%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

                      Save data to MySQL database using ExtJS and PHP [closed]2019 Community Moderator ElectionHow can I prevent SQL injection in PHP?Which MySQL data type to use for storing boolean valuesPHP: Delete an element from an arrayHow do I connect to a MySQL Database in Python?Should I use the datetime or timestamp data type in MySQL?How to get a list of MySQL user accountsHow Do You Parse and Process HTML/XML in PHP?Reference — What does this symbol mean in PHP?How does PHP 'foreach' actually work?Why shouldn't I use mysql_* functions in PHP?

                      Compiling GNU Global with universal-ctags support Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Data science time! April 2019 and salary with experience The Ask Question Wizard is Live!Tags for Emacs: Relationship between etags, ebrowse, cscope, GNU Global and exuberant ctagsVim and Ctags tips and trickscscope or ctags why choose one over the other?scons and ctagsctags cannot open option file “.ctags”Adding tag scopes in universal-ctagsShould I use Universal-ctags?Universal ctags on WindowsHow do I install GNU Global with universal ctags support using Homebrew?Universal ctags with emacsHow to highlight ctags generated by Universal Ctags in Vim?

                      Add ONERROR event to image from jsp tldHow to add an image to a JPanel?Saving image from PHP URLHTML img scalingCheck if an image is loaded (no errors) with jQueryHow to force an <img> to take up width, even if the image is not loadedHow do I populate hidden form field with a value set in Spring ControllerStyling Raw elements Generated from JSP tagds with Jquery MobileLimit resizing of images with explicitly set width and height attributeserror TLD use in a jsp fileJsp tld files cannot be resolved