John M. Scholes
John Morley Scholes (1948–2019) was a British computer scientist. In his professional career he was devoted to the development of the programming language APL. He was the designer and implementer of direct functions. Personal John Scholes was born on 24 April 1948 to Gerry and Amy Scholes. He grew up in Leamington Spa, Warwickshire, England, and attended Leamington College for Boys between 1960 and 1966. Between 1966 and 1969 he attended the University of Manchester and received a BSc (with honours) in mathematics. Scholes enjoyed poetic and romantic qualities in his life. Apart from APL, he also found beauty in nature, opera, the music of Tom Waits, the literature of James Joyce, the poetry of W.B. Yeats. He was a member of the Joyce society in Dublin. In 2013, he and his wife Flora Dowling went to Sligo to the W.B. Yeats Summer School and met the poet Seamus Heaney the summer before Heaney died. The APL side and the romantic side often met: The Depth-First Search video (below) was recorded at dawn on the summer solstice of 2014, with birdsong in the air, while he and his wife were on a 21-day Zen retreat in France led by Thích Nhất Hạnh. Scholes was pleased with both the technical content and the circumstances of that work. Career Scholes's first job was as a trainee computer programmer with International Computers Limited (ICL) (1969–70) and from there he went on to the Operations Research Department of WS Atkins in Epsom, Surrey (1971–75) and then to the Sales Support Department in Warrington, Lancashire (1976–77). Between 1977 and 1978 he worked with the European Space Agency in Madrid, Spain as a programmer for the International Ultraviolet Explorer project. He then returned to ICL Dataskil working on APL for the VME/B operating system (1978–82). In 1982, he started the Dyalog APL project for Unix machines, and in 1988 became a partner and director of the Dyalog Company. In 2004, Scholes sold his shares in the company, but continued as a consultant and, in his words, pursued his passionate interest in APL programming on various mathematical topics in general and functional programming and dfns in particular. Or "nerding", as he also called it. Direct functions (dfns) Kenneth E. Iverson, the inventor of APL, was dissatisfied with the way user functions were defined. In 1974, he devised "formal function definition" or "direct definition" for use in exposition. A direct definition has two or four parts, separated by colons: name : expression name : expression0 : proposition : expression1 Within a direct definition, denotes the left argument and the right argument. In the first instance, the result of is the result of the function; in the second instance, the result of the function is that of if evaluates to 0, or if it evaluates to 1. Assignments within a direct definition are dynamically local. Examples of using direct definition are found in the 1979 Turing Award Lecture and in books and application papers. Direct definition was too limited