Results 1 -
5 of
5
Lightweight GUIs for Functional Programming
- In Proceedings of the Seventh International Symposium on Programming Languages, Implementations, Logics and Programs
, 1995
"... . Graphical user interfaces (GUIs) are hard to combine with functional programming. Using a suitable combination of monads, we are able to tame the imperative aspects of graphical I/O in a straightforward and elegant way. We present a concept to integrate lightweight GUIs into the functional framewo ..."
Abstract
-
Cited by 18 (1 self)
- Add to MetaCart
. Graphical user interfaces (GUIs) are hard to combine with functional programming. Using a suitable combination of monads, we are able to tame the imperative aspects of graphical I/O in a straightforward and elegant way. We present a concept to integrate lightweight GUIs into the functional framework, together with a library of basic functions and layout combinators to manipulate the GUI. An implementation of this library, using a set of high-level graphical I/O routines, is outlined. Examples demonstrate the simple way in which applications can be written. 1 Introduction Everybody wants to use graphical user interfaces. And everybody wants to use functional programming languages. Unfortunately, these concepts are hard to combine: I/O, and graphical I/O in particular, is imperative in nature, and thus contradictory to the functional paradigm. Our goal is to reconcile these two concepts, by developing a framework in which a functional programmer smoothly can provide his program with a...
Functional Languages and Graphical User Interfaces -- a review and a case study
, 1994
"... At first sight, I/O in a pure functional language is not as straightforward as in imperative languages. For some years work has been going on to alleviate these problems, and there are now a number of different approaches. The purpose of this report is twofold --- firstly we shall review the problem ..."
Abstract
-
Cited by 15 (1 self)
- Add to MetaCart
At first sight, I/O in a pure functional language is not as straightforward as in imperative languages. For some years work has been going on to alleviate these problems, and there are now a number of different approaches. The purpose of this report is twofold --- firstly we shall review the problems encountered in performing I/O in a functional language and look at some of the ways these might be conquered, and secondly we shall look at some more recent solutions to I/O which encompass graphical interfaces.
Implementing Fudgets with Standard Widget Sets
- In Glasgow Functional Programming Workshop
, 1998
"... Carlsson and Hallgren [1] describe the implementation of a set of "functional widgets" (Fudgets): components for programming graphical user interfaces under the X window system using the nonstrict functional programming language Haskell. We describe an alternative implementation based on existing wi ..."
Abstract
-
Cited by 10 (1 self)
- Add to MetaCart
Carlsson and Hallgren [1] describe the implementation of a set of "functional widgets" (Fudgets): components for programming graphical user interfaces under the X window system using the nonstrict functional programming language Haskell. We describe an alternative implementation based on existing widget sets (currently Openlook and Motif). Our purpose is twofold: to show that the Fudgets approach can be applied to existing widget sets; and to discuss problems experienced with Fudgets during an industrial case study. 1 Introduction Imperative language programmers enjoy relatively easy access to the graphics resources of workstations. The graphics hardware is manipulated by side-effecting procedure calls. Even if the library of graphics procedures is written in one imperative language (e.g `C'), programs written in another imperative language can usually make calls to foreign procedures. For example, Ada allows foreign procedures to be called by giving a standard pragma. Ada compilers a...
Graphical User Interfaces for Haskell
- In Proceedings of the Fifth Annual Glasgow Workshop on Functional Programming, Ayr 6-8th July
, 1992
"... User interfaces are normally based on low-level trickery either within the run-time system, or in a separate program which has been connected to the stream I/O system of the language. We present a new twist to this by giving some intelligence to the outside system, which will have greater control of ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
User interfaces are normally based on low-level trickery either within the run-time system, or in a separate program which has been connected to the stream I/O system of the language. We present a new twist to this by giving some intelligence to the outside system, which will have greater control of the interface. This has a number of benefits: it makescreating new programs easier, increasesthe efficiency of the resulting system, and improves the separation between the two halves of the system. 1 Introduction Many people have written of the problems functional languages have with user interfaces, and have proposed various solutions. These solutions range from the simplistic [9], to the powerful [10], with some truly innovative possibilities explored [4,5]. These systems usually have, at some level, the functional program communicating with an external system, receiving events from the user or system, and replying with requests, telling the system what to do next. This can be done eith...
FUDGETS - Graphical User Interfaces and I/O in Lazy Functional Languages
, 1993
"... This thesis describes an implementation of a small window-based graphical user interface toolkit for the X Window System written in the lazy functional language LML. By using this toolkit, a Haskell or LML programmer can create a user interface with menus, buttons and other graphical interface objec ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
This thesis describes an implementation of a small window-based graphical user interface toolkit for the X Window System written in the lazy functional language LML. By using this toolkit, a Haskell or LML programmer can create a user interface with menus, buttons and other graphical interface objects, without conforming to more or less imperative programming paradigms imposed if she were to use a traditional (imperative) toolkit. Instead, the power of the abstraction methods provided by Haskell or LML are used. The main abstraction we use is the fudget. Fudgets are combined in a hierarchical structure, and they interact by message passing. The current implementation is based on a sequential evaluator, but by using nondeterminism and oracles, we suggest how fudgets can evaluate in parallel. We believe that the toolkit can be extended to a full-feathered and practically useful high level graphical toolkit. ISBN 91-7032-841-2 i No one can have experienced to the fullest the true sense ...

