Results 1  10
of
30,253
Comprehending Monads
 Mathematical Structures in Computer Science
, 1992
"... Category theorists invented monads in the 1960's to concisely express certain aspects of universal algebra. Functional programmers invented list comprehensions in the 1970's to concisely express certain programs involving lists. This paper shows how list comprehensions may be generalised t ..."
Abstract

Cited by 522 (16 self)
 Add to MetaCart
Category theorists invented monads in the 1960's to concisely express certain aspects of universal algebra. Functional programmers invented list comprehensions in the 1970's to concisely express certain programs involving lists. This paper shows how list comprehensions may be generalised to an arbitrary monad, and how the resulting programming feature can concisely express in a pure functional language some programs that manipulate state, handle exceptions, parse text, or invoke continuations. A new solution to the old problem of destructive array update is also presented. No knowledge of category theory is assumed.
Monads for functional programming
, 1995
"... The use of monads to structure functional programs is described. Monads provide a convenient framework for simulating effects found in other languages, such as global state, exception handling, output, or nondeterminism. Three case studies are looked at in detail: how monads ease the modification o ..."
Abstract

Cited by 1481 (39 self)
 Add to MetaCart
The use of monads to structure functional programs is described. Monads provide a convenient framework for simulating effects found in other languages, such as global state, exception handling, output, or nondeterminism. Three case studies are looked at in detail: how monads ease the modification of a simple evaluator; how monads act as the basis of a datatype of arrays subject to inplace update; and how monads can be used to build parsers.
Strategies of Discourse Comprehension
, 1983
"... El Salvador, Guatemala is a, study in black and white. On the left is a collection of extreme MarxistLeninist groups led by what one diplomat calls “a pretty faceless bunch of people.’ ’ On the right is an entrenched elite that has dominated Central America’s most populous country since a CIAbacke ..."
Abstract

Cited by 601 (27 self)
 Add to MetaCart
El Salvador, Guatemala is a, study in black and white. On the left is a collection of extreme MarxistLeninist groups led by what one diplomat calls “a pretty faceless bunch of people.’ ’ On the right is an entrenched elite that has dominated Central America’s most populous country since a CIAbacked coup deposed the reformist government of Col. Jacobo Arbenz Guzmán in 1954. Moderates of the political center. embattled but alive in E1 Salvador, have virtually disappeared in Guatemalajoining more than 30.000 victims of terror over the last tifteen vears. “The situation in Guatemala is much more serious than in EI Salvador, ” declares one Latin American diplomat. “The oligarchy is that much more reactionary. and the choices are far fewer. “ ‘Zero’: The Guatemalan oligarchs hated Jimmy Carter for cutting off U.S. military aid in 1977 to protest humanrights abusesand the rightwingers hired marimba bands and set off firecrackers on the night Ronald Reagan was elected. They considered Reagan an ideological kinsman and believed they had a special
Surface Reconstruction by Voronoi Filtering
 Discrete and Computational Geometry
, 1998
"... We give a simple combinatorial algorithm that computes a piecewiselinear approximation of a smooth surface from a finite set of sample points. The algorithm uses Voronoi vertices to remove triangles from the Delaunay triangulation. We prove the algorithm correct by showing that for densely sampled ..."
Abstract

Cited by 418 (15 self)
 Add to MetaCart
We give a simple combinatorial algorithm that computes a piecewiselinear approximation of a smooth surface from a finite set of sample points. The algorithm uses Voronoi vertices to remove triangles from the Delaunay triangulation. We prove the algorithm correct by showing that for densely sampled surfaces, where density depends on "local feature size", the output is topologically valid and convergent (both pointwise and in surface normals) to the original surface. We describe an implementation of the algorithm and show example outputs. 1 Introduction The problem of reconstructing a surface from scattered sample points arises in many applications such as computer graphics, medical imaging, and cartography. In this paper we consider the specific reconstruction problem in which the input is a set of sample points S drawn from a smooth twodimensional manifold F embedded in three dimensions, and the desired output is a triangular mesh with vertex set equal to S that faithfully represen...
miRBase: microRNA sequences, targets and gene nomenclature
 Nucleic Acids Res
, 2006
"... nomenclature ..."
Theorems for free!
 FUNCTIONAL PROGRAMMING LANGUAGES AND COMPUTER ARCHITECTURE
, 1989
"... From the type of a polymorphic function we can derive a theorem that it satisfies. Every function of the same type satisfies the same theorem. This provides a free source of useful theorems, courtesy of Reynolds' abstraction theorem for the polymorphic lambda calculus. ..."
Abstract

Cited by 380 (8 self)
 Add to MetaCart
From the type of a polymorphic function we can derive a theorem that it satisfies. Every function of the same type satisfies the same theorem. This provides a free source of useful theorems, courtesy of Reynolds' abstraction theorem for the polymorphic lambda calculus.
The tandem affinity purification (TAP) method: a general procedure of protein complex purification. Methods 24
, 2001
"... Identification of components present in biological complexes requires their purification to near homogeneity. Methods of purification vary from protein to protein, making it impossible to design a general purification strategy valid for all cases. We have developed the tandem affinity purification ..."
Abstract

Cited by 340 (3 self)
 Add to MetaCart
Identification of components present in biological complexes requires their purification to near homogeneity. Methods of purification vary from protein to protein, making it impossible to design a general purification strategy valid for all cases. We have developed the tandem affinity purification (TAP) method as a tool that allows rapid purification under native conditions of complexes, even when expressed at their natural level. Prior knowledge of complex composition or function is not required. The TAP method requires fusion of the TAP tag, either N or Cterminally, to the target protein of interest. Starting from a relatively small number of cells, active macromolecular complexes can be isolated and used for multiple applications. Variations of the method to specifically purify complexes containing two given components or to subtract undesired complexes can easily be implemented. The TAP method was initially developed in yeast but can be successfully
Programming with bananas, lenses, envelopes and barbed wire
 In FPCA
, 1991
"... We develop a calculus for lazy functional programming based on recursion operators associated with data type definitions. For these operators we derive various algebraic laws that are useful in deriving and manipulating programs. We shall show that all example Functions in Bird and Wadler's &qu ..."
Abstract

Cited by 334 (12 self)
 Add to MetaCart
We develop a calculus for lazy functional programming based on recursion operators associated with data type definitions. For these operators we derive various algebraic laws that are useful in deriving and manipulating programs. We shall show that all example Functions in Bird and Wadler's "Introduction to Functional Programming " can be expressed using these operators. 1
Why functional programming matters
 The Computer Journal
, 1989
"... As software becomes more and more complex, it is more and more important to structure it well. Wellstructured software is easy to write, easy to debug, and provides a collection of modules that can be reused to reduce future programming costs. Conventional languages place conceptual limits on the ..."
Abstract

Cited by 327 (2 self)
 Add to MetaCart
As software becomes more and more complex, it is more and more important to structure it well. Wellstructured software is easy to write, easy to debug, and provides a collection of modules that can be reused to reduce future programming costs. Conventional languages place conceptual limits on the way problems can be modularised. Functional languages push those limits back. In this paper weshow that two features of functional languages in particular, higherorder functions and lazy evaluation, can contribute greatly to modularity. As examples, we manipulate lists and trees, program several numerical algorithms, and implement the alphabeta heuristic (an algorithm from Arti cial Intelligence used in gameplaying programs). Since modularity is the key to successful programming, functional languages are vitally important to the real world. 1
Results 1  10
of
30,253