Results 1  10
of
2,238
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.
Text Classification from Labeled and Unlabeled Documents using EM
 MACHINE LEARNING
, 1999
"... This paper shows that the accuracy of learned text classifiers can be improved by augmenting a small number of labeled training documents with a large pool of unlabeled documents. This is important because in many text classification problems obtaining training labels is expensive, while large qua ..."
Abstract

Cited by 1033 (19 self)
 Add to MetaCart
This paper shows that the accuracy of learned text classifiers can be improved by augmenting a small number of labeled training documents with a large pool of unlabeled documents. This is important because in many text classification problems obtaining training labels is expensive, while large quantities of unlabeled documents are readily available. We introduce an algorithm for learning from labeled and unlabeled documents based on the combination of ExpectationMaximization (EM) and a naive Bayes classifier. The algorithm first trains a classifier using the available labeled documents, and probabilistically labels the unlabeled documents. It then trains a new classifier using the labels for all the documents, and iterates to convergence. This basic EM procedure works well when the data conform to the generative assumptions of the model. However these assumptions are often violated in practice, and poor performance can result. We present two extensions to the algorithm that improve ...
The Architecture of an Implementation of λProlog: Prolog/Mali
 In Workshop on Prolog
, 1995
"... Prolog is a logic programming language accepting a more general clause form than standard Prolog (hereditary Harrop formulas instead of Horn formulas) and using simply typed terms as a term domain instead of first order terms. Despite these extensions, it is still amenable to goaldirected proofs ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
Prolog is a logic programming language accepting a more general clause form than standard Prolog (hereditary Harrop formulas instead of Horn formulas) and using simply typed terms as a term domain instead of first order terms. Despite these extensions, it is still amenable to goaldirected proofs
Logic Grammars and λProlog
 10th Int. Conf. Logic Programming
, 1993
"... A logic grammar formalism called DCG (Definite Clause Grammars), which has proved to be useful, is part of most Prolog implementations. We develop two new logic grammar formalisms called DCG' and HHG (higherorder Hereditary Harrop Grammars) that can be used in Prolog implementations. The relat ..."
Abstract
 Add to MetaCart
. The relations between DCG, DCG', and HHG, and Prolog and Prolog can be illustrated by the following diagram: DCG 3? DCG' 4? LambdaHHG  "  1  "3  4  "  v v v Prolog 2? LambdaProlog 1. The language Prolog, the DCG
Subtyping recursive types
 ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS
, 1993
"... We investigate the interactions of subtyping and recursive types, in a simply typed λcalculus. The two fundamental questions here are whether two (recursive) types are in the subtype relation, and whether a term has a type. To address the first question, we relate various definitions of type equiva ..."
Abstract

Cited by 330 (8 self)
 Add to MetaCart
We investigate the interactions of subtyping and recursive types, in a simply typed λcalculus. The two fundamental questions here are whether two (recursive) types are in the subtype relation, and whether a term has a type. To address the first question, we relate various definitions of type
The Integration of Functions into Logic Programming: From Theory to Practice
 Journal of Logic Programming
, 1994
"... Abstract. Functional logic programming languages combine the most important declarative programming paradigms, and attempts to combine these paradigms have a long history. The declarative multiparadigm language Curry is influenced by recent advances in the foundations and implementation of function ..."
Abstract

Cited by 362 (59 self)
 Add to MetaCart
Abstract. Functional logic programming languages combine the most important declarative programming paradigms, and attempts to combine these paradigms have a long history. The declarative multiparadigm language Curry is influenced by recent advances in the foundations and implementation of functional logic languages. The development of Curry is an international initiative intended to provide a common platform for the research, teaching, and application of integrated functional logic languages. This paper surveys the foundations of functional logic programming that are relevant for Curry, the main features of Curry, and extensions and applications of Curry and functional logic programming. 1
HigherOrder Abstract Syntax
"... We describe motivation, design, use, and implementation of higherorder abstract syntax as a central representation for programs, formulas, rules, and other syntactic objects in program manipulation and other formal systems where matching and substitution or syntax incorporates name binding informat ..."
Abstract

Cited by 358 (18 self)
 Add to MetaCart
We describe motivation, design, use, and implementation of higherorder abstract syntax as a central representation for programs, formulas, rules, and other syntactic objects in program manipulation and other formal systems where matching and substitution or syntax incorporates name binding information in a uniform and language generic way. Thus it acts as a powerful link integrating diverse tools in such formal environments. We have implemented higherorder abstract syntax, a supporting matching and unification algorithm, and some clients in Common
Natural semantics
 In Proc. 4th Annual Symp. Theoretical Aspects of Computer Science, number 247 in Lect. Notes in Comp. Sci
, 1987
"... During the past few years, many researchers have begun to present semantic specifications in a style that has been strongly advocated by Plotkin in [19]. The purpose of this paper is to introduce in an intuitive manner the essential ideas of the method that we call now Natural Semantics ~ together w ..."
Abstract

Cited by 350 (2 self)
 Add to MetaCart
During the past few years, many researchers have begun to present semantic specifications in a style that has been strongly advocated by Plotkin in [19]. The purpose of this paper is to introduce in an intuitive manner the essential ideas of the method that we call now Natural Semantics ~ together with its connections to ideas in logic and computing. Natural Semantics is of interest per se and because it is used as a semantics specification formalism for an interactive computer system that we are currently building at INRIA. 1.
Type Inference with Polymorphic Recursion
 Transactions on Programming Languages and Systems
, 1991
"... The DamasMilner Calculus is the typed Acalculus underlying the type system for ML and several other strongly typed polymorphic functional languages such as Mirandal and Haskell. Mycroft has extended its problematic monomorphic typing rule for recursive definitions with a polymorphic typing rule. H ..."
Abstract

Cited by 146 (3 self)
 Add to MetaCart
The DamasMilner Calculus is the typed Acalculus underlying the type system for ML and several other strongly typed polymorphic functional languages such as Mirandal and Haskell. Mycroft has extended its problematic monomorphic typing rule for recursive definitions with a polymorphic typing rule
Lightweight Lemmas in λProlog
, 1999
"... λProlog is known to be wellsuited for expressing and implementing logics and inference systems. We show that lemmas and definitions in such logics can be implemented with a great economy of expression. The terms of the metalanguage (λProlog) can be used to express the statement of a lemma, and the ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
, and the type checking of the metalanguage can directly implement the type checking of the lemma. The MLstyle prenex polymorphism of lProlog allows easy expression of polymorphic inference rules, but a more general polymorphism would be necessary to express polymorphic lemmas directly. We discuss both
Results 1  10
of
2,238