Results 11 - 20
of
69
Haskore Music Tutorial
- In Second International School on Advanced Functional Programming
, 1996
"... this paper I assume that the reader is familar with the basics of functional programming and Haskell in particular. If not, I encourage reading at least A Gentle Introduction to Haskell [HF92] before proceeding. I also assume some familiarity with equational reasoning; an excellent introductory text ..."
Abstract
-
Cited by 13 (1 self)
- Add to MetaCart
this paper I assume that the reader is familar with the basics of functional programming and Haskell in particular. If not, I encourage reading at least A Gentle Introduction to Haskell [HF92] before proceeding. I also assume some familiarity with equational reasoning; an excellent introductory text on this is [BW88]. 2 The Architecture of Haskore
Programming World Wide Web Pages in Scheme
, 1999
"... In this paper we will argue that pages on the World Wide Web can be made directly as programs in a functional programming language instead of through HTML or an HTML-based authoring tool. We use the Scheme programming language from the Lisp family for WWW page production. It is concluded that a Lisp ..."
Abstract
-
Cited by 10 (1 self)
- Add to MetaCart
In this paper we will argue that pages on the World Wide Web can be made directly as programs in a functional programming language instead of through HTML or an HTML-based authoring tool. We use the Scheme programming language from the Lisp family for WWW page production. It is concluded that a Lisp language is an attractive direct vehicle for authoring of Internet material in the sense that the source of a WWW document becomes a Lisp program. Abstraction from details in the underlying markup language constitutes the main advantage in our approach. This is consistent with the expected advantage of introducing XML as a successor of HTML. In addition we find it useful to have the power of a high quality programming language available for automation of routine tasks during the authoring process. 1 Introduction Today HTML [ 3 ] is the primary markup language which is used to present information on the World Wide Web (WWW). HTML is a simple, non-extensible language in the SGML family. SG...
Comparing Id and Haskell in a Monte Carlo Photon Transport Code
- Journal of Functional Programming
, 1995
"... In this paper we present functional Id and Haskell versions of a large Monte Carlo radiation transport code, and compare the two languages with respect to their expressiveness. Monte Carlo transport simulation exercises such abilities as parsing, input/output, recursive data structures and tradition ..."
Abstract
-
Cited by 9 (2 self)
- Add to MetaCart
In this paper we present functional Id and Haskell versions of a large Monte Carlo radiation transport code, and compare the two languages with respect to their expressiveness. Monte Carlo transport simulation exercises such abilities as parsing, input/output, recursive data structures and traditional number crunching, which makes it a good test problem for languages and compilers. Using some code examples, we compare the programming styles encouraged by the two languages. In particular, we discuss the effect of laziness on programming style. We point out that resource management problems currently prevent running realistically large problem sizes in the functional versions of the code. Capsule Review The Monte Carlo technique has a long history. Its importance has grown in tandem with the availability ofcheap computing power. The authors outline the functionality of a large Monte Carlo simulation program, and demonstrate that a simpli ed kernel version can be cleanly coded in a functional style. They illustrate some effects of functional language implementation on programming style. It is characteristic of the Monte Carlo method that code validation and debugging depend on high-statistics results. The authors frankly describe the problems encountered in obtaining such results from the functional codes. Their experiences highlight the need for future research to address specific implementation problems. Chief among these needs are effective debugging tools for inspecting partial results and efficient yet unobtrusive methods of memory management. Reports of this kind provide important empirical data on the practice of functional programming that can help guide both application development and language support research.
A Type-Sensitive Preprocessor for Haskell
- In Glasgow Workshop on Functional Programming, Ullapool
, 1997
"... This paper presents a preprocessor which generates code from type de nitions. The preprocessor uses rules to describe the pattern of the produced code. In this way, instances may be derived for type classes. Utility functions for manipulating types, especially records, can also be produced. The set ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
This paper presents a preprocessor which generates code from type de nitions. The preprocessor uses rules to describe the pattern of the produced code. In this way, instances may be derived for type classes. Utility functions for manipulating types, especially records, can also be produced. The set of rules is easily extendible; by adding derivation rules for new type classes, instance derivation is possible for classes de ned outside the prelude. 1
Hugs 1.3 The Haskell User's Gofer System User Manual
, 1996
"... Contents 1 Introduction 1 2 A technical summary of Hugs 1.3 2 3 Hugs for beginners 4 3.1 Expressions : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 3.2 Commands : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 3.3 Scripts : : : : : : : : : : : : : : : : : : : : : : : : ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
Contents 1 Introduction 1 2 A technical summary of Hugs 1.3 2 3 Hugs for beginners 4 3.1 Expressions : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 3.2 Commands : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 3.3 Scripts : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 4 Starting Hugs 8 4.1 Environment variables : : : : : : : : : : : : : : : : : : : : : : : : 9 4.2 Command line options : : : : : : : : : : : : : : : : : : : : : : : : 11 - Print statistics : : : : : : : : : : : : : : : : : : : : : : : : : : : : 11 - Print type after evaluation : : : : : : : : : : : : : : : : : : : : : 12 - Terminate on error : : : : : : : : : : : : : : : : : : : : : : : : : 12 - Garbage collector notification : : : : : : : : : : : : : : : : : : : 13 - Literate scripts : : : : : : : : : : : :
Context Patterns in Haskell
- In 8th Int. Workshop on Implementation of Functional Languages, LNCS 1268
, 1996
"... In modern functional languages, pattern matching is used to define functions or expressions by performing an analysis of the structure of values. We extend Haskell with a new nonlocal form of patterns called context patterns, which allow the matching of subterms without fixed distance from the root ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
In modern functional languages, pattern matching is used to define functions or expressions by performing an analysis of the structure of values. We extend Haskell with a new nonlocal form of patterns called context patterns, which allow the matching of subterms without fixed distance from the root of the whole term. The semantics of context patterns is defined by transforming them to standard Haskell programs. Typical applications of context patterns are functions which search a data structure and possibly transform it. This concept can easily be adopted for other languages using pattern matching like ML or Clean.
Extending a Functional Programming System for Embedded Applications
- Software: Practice & Experience
, 1995
"... This paper describes such a model, its implementation by extension to the Gofer programming system, and examples of its use. Performance results indicate that even this prototype interpretive system is adequate for small applications. The major gain of using a functional language is the ease with wh ..."
Abstract
-
Cited by 7 (2 self)
- Add to MetaCart
This paper describes such a model, its implementation by extension to the Gofer programming system, and examples of its use. Performance results indicate that even this prototype interpretive system is adequate for small applications. The major gain of using a functional language is the ease with which abstraction can be layered over low-level detail, improving both the readability of code and its tractability
Deterministic Concurrency
- In Proceedings of the 1993 Glasgow Workshop on Functional Programming
, 1993
"... Existing functional languages appear not to be suitable for implementing systems which are inherently concurrent, such as operating system environments. Adaptations to functional languages developed to support such applications have in the past always involved the introduction of non-determinism. ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Existing functional languages appear not to be suitable for implementing systems which are inherently concurrent, such as operating system environments. Adaptations to functional languages developed to support such applications have in the past always involved the introduction of non-determinism.
Hugs 1.4: The Nottingham and Yale Haskell User's System
, 1997
"... Contents 1 Introduction 1 2 A technical summary of Hugs 1.4 2 3 Hugs for beginners 4 3.1 Expressions : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 3.2 Commands : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 3.3 Programs : : : : : : : : : : : : : : : : : : : : : : : ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Contents 1 Introduction 1 2 A technical summary of Hugs 1.4 2 3 Hugs for beginners 4 3.1 Expressions : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 3.2 Commands : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 3.3 Programs : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 4 Starting Hugs 9 4.1 Environment options : : : : : : : : : : : : : : : : : : : : : : : : : 10 4.2 Options : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 11 - Set search path : : : : : : : : : : : : : : : : : : : : : : : : : : : 12 - Set editor : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 12 - Print statistics : : : : : : : : : : : : : : : : : : : : : : : : : : : : 13 - Print type after evaluation : : : : : : : : : : : : : : : : : : : : : 14 - Terminate on error
On the Effectiveness of Functional Language Features: NAS benchmark FT
- Journal of Functional Programming
, 1997
"... In this paper we investigate the effectiveness of functional language features when writing scientific codes. Our programs are written in the purely functional subset of Id and executed on a one node Motorola Monsoon machine, and in Haskell and executed on a Sparc 2. In the application we study -- t ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
In this paper we investigate the effectiveness of functional language features when writing scientific codes. Our programs are written in the purely functional subset of Id and executed on a one node Motorola Monsoon machine, and in Haskell and executed on a Sparc 2. In the application we study -- the NAS FT benchmark, a three-dimensional heat equation solver -- it is necessary to target and select one-dimensional sub-arrays in three-dimensional arrays. Furthermore, it is important to be able to share computation in array definitions. We compare first order and higher order implementations of this benchmark. The higher order version uses functions to select one-dimensional sub-arrays, or slices, from a three-dimensional object, whereas the first order version creates copies to achieve the same result. We compare various representations of a three-dimensional object, and study the effect of strictness in Haskell. We also study the performance of our codes when employing recursive and it...

