Illegal Argument

Episode 116 - Messy Types and Garbage Collection


Listen Later

  • Garbage Collection
  • Language/Compiler design
  • Function Types
    • A discussion on whether a functions signature is a type, or not.
    • During this discussion we talked about the implicit currying of haskell functions and how this could lead to run-time errors rather than compile errors, however whilst I (Mark) knew what I was talking about, I missed a fundamental part of the equation - function types include the return type, so a partially applied function that doesn’t fit a high-order function is a compile time error.

      So given two functions:

      someHof :: (String -> String) -> String
      take3StringsReturningString :: String -> String -> String -> String

      The first function someHof takes a function String -> String and returns a String, if we partially apply take3StringsReturningString "test" the resulting function is String -> String -> String which doesn’t match the required syntax of someHof so wouldn’t even compile.

      ...more
      View all episodesView all episodes
      Download on the App Store

      Illegal ArgumentBy Mark Derricutt, Greg Amer and Richard Vowles

      • 5
      • 5
      • 5
      • 5
      • 5

      5

      2 ratings