gofer icon indicating copy to clipboard operation
gofer copied to clipboard

  • gofer This gofer is a fork of Mark Jones original with some additions and modifications, the most visible one being the /Dijkstra dot/ for function application. See [[https://www.cs.utexas.edu/users/EWD/ewd13xx/EWD1300.PDF][Notational Conventions]] – pg 8 onwards.

I used to call it /pugofer/ since I was using it to teach when at Pune University in the early 90s.

Mark Jones is gratefully acknowledged for this pioneering work.

  • Setup See [[file:INSTALL.org][installation/setup]]
  • Sample To see how source looks with these changed syntaxes, look at the standard prelude: [[file:pustd.pre][pustd.pre]].

The alternate prelude [[file:pusimple.pre][pusimple]] is particularly neat for those who feel the need to grok Hindley-Milner before getting into typeclasses. With that you'll get, for example: #+BEGIN_SRC haskell ? :t (+) (+) : Int -> Int -> Int ? :t (==) (==) : a -> a -> Bool #+END_SRC

  • Syntax late-bound You can switch back to classic Haskell syntax with =:s -S= #+BEGIN_SRC haskell ? map.(1+).[1,2,3] [2, 3, 4] : [Int]

? :s -S ? map (1+) [1,2,3] [2, 3, 4] :: [Int]

#+END_SRC

  • Building
  • =cd src=
  • Choose the architecture near line 25 following [[file:src/prelude.h][prelude.h]] \ Exactly one =LINUX=, =WIN32= or =NETBSD= (for MacOS) should be 1; all the rest should be 0
  • If necessary, choose C compiler -- =CC= -- in [[file:src/Makefile][Makefile]]
  • =$ make= There is no configure to run.\ Windows seems to build with mingw for 32 bit but not 64.
  • Literature Justifications for these changes are explained in [[http://www.the-magus.in/Publications/notation.pdf][Notes on Notation]]

Also may be of interest:

  • [[http://www.the-magus.in/Publications/ewd.pdf][Thought Dialogue with EWD]]
  • [[http://www.the-magus.in/Publications/DotingOnTheDot.pdf][Doting on the Dot]]
  • [[http://www.the-magus.in/Publications/purgatory.pdf][Lunchtime at Purgatory]]

Evidently at the end of his life Dijkstra did [[https://www.cs.utexas.edu/users/EWD/OtherDocs/To%20the%20Budget%20Council%20concerning%20Haskell.pdf][support FP]]