This presentation was recorded at YOW! 2019. #GOTOcon #YOW Tony Morris - Software Engineer at Simple Machines RESOURCES ABSTRACT Trees That Grow *(Najd, Shayan and Peyton-Jones, Simon, 2016)* is proposed as a solution to a problem that regularly affects authors of deep and detailed algebraic structures. A #DataStructure denoting a syntax tree for a #ProgrammingLanguage is typically very intricate and a small alteration deep in the tree can affect all siblings and parents of that tree. For example, adding a minor language feature to a syntax tree can have flow-on effects for the remainder of the tree. Classy lenses & prisms are a very powerful tool to overcome this common issue, which we will look at in this talk, but we will primarily look at another more recent proposal in #TreesThatGrow (#TTG) to contrast and explore. Although this general problem is canonically explained in terms of a programming language syntax tree (such as lambda calculus), we will also look at another application in aviation where TTG has been used to implement a flexible data structure tree in aviation documentation. The outcome of the talk is to provoke a discussion about this common programming problem, and the methods and trade-offs by which it might be overcome. TTG is also proposed as a solution to extending the #Haskell programming language in the #GlasgowHaskellCompiler (#GHC). Overall, the audience will get a good feel for the details of the problem that we are dealing with, then we explore some of the methods by which we can mitigate the problem, with an emphasis on gaining an understanding for Trees That Grow. [...] RECOMMENDED BOOKS Vitaly Bragilevsky • Haskell in Depth • Rebecca Skinner • Effective Haskell • Graham Hutton • Programming in Haskell • John Whitington • Haskell from the Very Beginning • #FunctionalProgramming #SoftwareEngineering #Programming #TonyMorris #YOWcon Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at Sign up for updates and specials at SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
Hide player controls
Hide resume playing