| P. Hudak. The Haskell School of Expression: Learning Functional Programming through multimedie. Cambridge University Press, 2000. |
....is to teach programming as a craft in the context of a single programming paradigm, embodied in a single language. The science is limited to the chosen paradigm or language. Some popular paradigms are objectoriented programming [23, 26, 27, 16] imperative programming [24] functional programming [11, 19, 7, 14, 25], logic programming [33, 8] and concurrent imperative programming [4, 5] Only the textbooks on functional programming and concurrent imperative programming give a formal semantics. Some languages are Java [23, 26, 22, 6] C [34] Ei#el [27] Prolog [33, 8] Erlang [5] Objective Caml [10] and ....
Paul Hudak. The Haskell School of Expression: Learning Functional Programming Through Multimedia. Cambridge University Press, 2000.
....some graphics packages. Although OOP provides a module scheme for graphical objects, the control part of objects has to be described procedurally. The programmers have to maintain the relationship between the internal data structures of objects and their visual representation. Elliott and Hudak [5, 6] have developed a graphics library for the functional language Haskell. The library consists of new data types and functions for representing time, objects, events, and behaviors. The library facilitates the composition of new objects from existing ones. In terms of the specification of layouts, ....
Paul Hudak, The Haskell School of Expression -- Learning Functional Programming Through Multimedia, Cambridge University Press, 2000.
....12) and Thompson [6] discusses it in Chapter 18 (out of 20) In addition, when I O is covered, it is encumbered by advanced functional programming notions, such as monads, which to freshman probably does little in the way of promoting the practicability of Haskell. In comparison, Hudak s book [3] takes a different approach as it faces I O early on, in Chapter 3 (out of 24) and uses it throughout the book. As is already apparent from its title, the book still has a distinct emphasis on functional programming as such, but it undoubtedly lends itself significantly better to the style of ....
....I O, and so on. In the whole process of teaching I O to freshman, it is imperative to avoid the monad based heritage of I O in Haskell. Moreover, we use flow diagrams to conceptualise the control flow in a program s interaction shell and have found graphics programming, as proposed by Hudak [3], a good motivation for students to master the challenges of I O programming. Survey results. When we asked students in surveys about the relative difficulty of the various topics in the course, I O programming was rated at above average difficulty. However, topics such as trees, work complexity, ....
Paul Hudak. The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press, 2000.
....2.1 Functional Reactive Programming Functional Reactive Programming (FRP) is a high level declarative programming model for constructing interactive applications. In this section, we give a very brief introduction to the aspects of FRP needed to understand the rest of the paper; see [6, 4, 11] for more details. There are two key polymorphic data types in FRP: Behavior and Event. Conceptually, a Behavior is a time varying continuous value. One can think of type Behavior a as having the Haskell de nition: type Behavior a = Time a That is, a value of type Behavior a is a function ....
....is represented by an object instance at runtime, and each edge is represented by a eld with a reference to another instance of a combinator class. What operations must each Behavior node in the runtime graph support A detailed study of one particular FRP implementation (SOE FRP, described in [11]. 4 ) revealed that, in the absence of generalized time transformation, each node in the graph essentially needs to support only one operation: get the value of the Behavior at the current sample time. Interestingly, we can model this operation by de ning a Behavior as a Java Bean with a single ....
[Article contains additional citation context not shown here]
P. Hudak. The Haskell School of Expression { Learning Functional Programming through Multimedia. Cambridge University Press, Cambridge, UK, 2000.
....specification of the syntax and semantics of languages, handles left recursive context free grammars as input, as well as precedence and associativity of dyadic infix operators, and generates readable and succint output programs. The paper uses and assumes familiarity with the language Haskell[Bir98, Hud00] and with monadic programming and monadic combinators[Wad92a, Wad90, Hut92, HM96] Section 2 describes the input, output, overall behaviour and structure, as well as the general principle behind M imico s scheme of program generation, by means of simple examples. Subsequent sections discuss the ....
. Paul Hudak. The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press, 2000.
....a prototype of a monadic combinator compiler compiler, called M imico. M imico can work with left recursive context free grammars and allows for an easy specification of precedence and associativity of dyadic infix operators. Some familiarity with functional programming and the language Haskell[Bir98, Hud00] is assumed, as well as with monadic programming[Wad92a, Wad90, Hut92, HM96] Section 2 describes the input, output, overall behaviour and structure, as well as the general principle behind M imico, by means of simple examples. Subsequent sections discuss the treatment of left recursion, and ....
Paul Hudak. The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press, 2000.
....correspond to the core Ocaml language, covering neither its module system, nor objects. For other languages of the ML family, 27] is a excellent introductory document to Standard ML and [25, 24] are the reference documents for this language. For Haskell, the reference manual is [19] and [32, 18] give a very progressive approach to the lanuage. Typechecking and semantics of core ML are formalized in several articles and book chapters. A concise and self contained presentation can also be found in [20, chapter 1] A more modern formalization of the semantics, using small step reductions, ....
Paul Hudak. The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press, 2000.
No context found.
Paul Hudak. The Haskell School of Expression -- Learning Functional Programming through Multimedia. Cambridge University Press, New York, 2000.
....for completeness, we describe how to add user input in Section 8. 4. ASTREAMIMPLEMENTATIONOFFRP Our stream based implementation of FRP is interesting in its own right, but because of space limitations we omit a detailed discussion of it here; the basic idea is outlined in [6] and elaborated in [10]. The core data types in FRP, Behavior and Event, are given by: type Behavior a = Time] a] type Event a = Time] Maybe a] Here Maybe a is a data type whose values are either Nothing or Just x, where x is some a. Intuitively, a behavior is a stream transformer: a function that ....
....semantics given in this paper is di erent in that it parameterizes the start time for behaviors and events, and contains a more precise characterization of events. Various implementation techniques for Fran are discussed in [6] including the basic ideas behind a stream based implementation; in [10] the particular implementation used in this paper is described in detail. It is worth noting that we concentrated here on just one implementation technique for FRP; it may well be that other techniques either have more or fewer constraints than those discovered for streams. In particular, it is ....
Paul Hudak. The Haskell School of Expression { Learning Functional Programming through Multimedia. Cambridge University Press, New York, 2000.
No context found.
Paul Hudak. The Haskell School of Expression { Learning Functional Programming through Multimedia. Cambridge University Press, New York, 2000.
....LUSTRE also have a macro like 1 ESTEREL first translates programs into circuits (or state machines) then these circuits are analysed to ensure determinism. Taha, Hudak, and Wan facility that supports recursion, but runs the risk of causing the compiler to diverge. FRP is embedded in Haskell [46, 31, 47] and so inherits recursion and non termination. RT FRP [100] is a subset of FRP that guarantees resourcebounded program execution: every interactive RT FRP computation terminates. Using a special type system, RT FRP still allows two forms of recursion similar in spirit to the idea of ....
....type computation models a strictly infinite sequence of interactions with the outside world (as long as the outside world is providing an input) This model of computations is well suited for reactive and interactive systems. A number of reactive languages, such as Lava [18] Hawk [62] and FRP [46], have used streams to implement the idea presented above. Streams are infinite datastructures which can be easily defined in a lazy language. However, most of these systems have been developed as languages embedded into Haskell. RT FRP implements the same model, but as a closed language, which ....
[Article contains additional citation context not shown here]
Paul Hudak. The Haskell School of Expression -- Learning Functional Programming through Multimedia. Cambridge University Press, New York, 2000.
....are being designed, implemented, and maintained. As this trend continues, the reliability and safety of programming languages for such systems becomes more of a concern, and real time systems become a natural domain for a high level programming language. Functional Reactive Programming (FRP) [16, 39] is a paradigm that has been used for building a host of interesting reactive systems in domains such as animation [8, 9, 33] graphical user interface design [5] and robotics [27, 28, 31] As such, FRP is a good candidate for a high level language for real time programming. The central semantic ....
....(such as our operational semantics) and continuous models (such as a denotational semantics) is that in the discrete case behaviors and events only need to have values at a countable set of points. This means that there is an interesting type isomorphism [7] relating behaviors and events, namely [16]: Event a Behavior (Maybe a) where Maybe a is a data type with data constructors Nothing and Just a. This isomorphism makes it possible in our work to combine behaviors and events into one common type that we call a signal, and thus treat both concepts uniformly. 2.2 A Concrete Base Language ....
Paul Hudak. The Haskell School of Expression { Learning Functional Programming through Multimedia. Cambridge University Press, New York, 2000.
No context found.
P. Hudak. The Haskell School of Expression: Learning Functional Programming through multimedie. Cambridge University Press, 2000.
No context found.
Paul Hudak. The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press, 2000.
No context found.
Paul Hudak. The Haskell School of Expression { Learning Functional Programming through Multimedia. Cambridge University Press, New York, 2000.
No context found.
P. Hudak, The Haskell School of Expression: Learning Functional Programming through Multimedia (Cambridge University Press, New York, 2000).
No context found.
P. Hudak, The Haskell School of Expression: Learning Functional Programming through Multimedia (Cambridge University Press, New York, 2000).
No context found.
P. Hudak. The Haskell school of expression: learning functional programming through multimedia. Cambridge, 2000.
No context found.
P. Hudak. The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press, New York, 2000.
No context found.
Paul Hudak. The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press, New York, 2000.
No context found.
P. Hudak. The Haskell School of Expression: Learning Functional Programming through multimedie. Cambridge University Press, 2000.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC