53 research outputs found
First-class patterns
Pure pattern calculus supports pattern-matching functions in which patterns are first-class citizens that can be passed as parameters, evaluated and returned as results. This new expressive power supports two new forms of polymorphism. Path polymorphism allows recursive functions to traverse arbitrary data structures. Pattern polymorphism allows patterns to be treated as parameters which may be collected from various sources or generated from training data. A general framework for pattern calculi is developed. It supports a proof of confluence that is parameterised by the nature of the matching algorithm, suitable for the pure pattern calculus and all other known pattern calculi. © 2009 Copyright Cambridge University Press
Normalisation for Dynamic Pattern Calculi
The Pure Pattern Calculus (PPC) extends the lambda-calculus, as well as the family of algebraic pattern calculi, with first-class patterns; that is, patterns can be passed as arguments, evaluated and returned as results. The notion of matching failure of the PPC not only provides a mechanism to define functions by pattern matching on cases but also supplies PPC with parallel-or-like, non-sequential behaviour. Therefore, devising normalising strategies for PPC to obtain well-behaved implementations turns out to be challenging.
This paper focuses on normalising reduction strategies for PPC. We define a (multistep) strategy and show that it is normalising. The strategy generalises the leftmost-outermost strategy for lambda-calculus and is strictly finer than parallel-outermost. The normalisation proof is based on the notion of necessary set of redexes, a generalisation of the notion of needed redex encompassing
non-sequential reduction systems
Non-linear Pattern Matching with Backtracking for Non-free Data Types
Non-free data types are data types whose data have no canonical forms. For
example, multisets are non-free data types because the multiset has
two other equivalent but literally different forms and .
Pattern matching is known to provide a handy tool set to treat such data types.
Although many studies on pattern matching and implementations for practical
programming languages have been proposed so far, we observe that none of these
studies satisfy all the criteria of practical pattern matching, which are as
follows: i) efficiency of the backtracking algorithm for non-linear patterns,
ii) extensibility of matching process, and iii) polymorphism in patterns.
This paper aims to design a new pattern-matching-oriented programming
language that satisfies all the above three criteria. The proposed language
features clean Scheme-like syntax and efficient and extensible pattern matching
semantics. This programming language is especially useful for the processing of
complex non-free data types that not only include multisets and sets but also
graphs and symbolic mathematical expressions. We discuss the importance of our
criteria of practical pattern matching and how our language design naturally
arises from the criteria. The proposed language has been already implemented
and open-sourced as the Egison programming language
A standardisation proof for algebraic pattern calculi
This work gives some insights and results on standardisation for call-by-name
pattern calculi. More precisely, we define standard reductions for a pattern
calculus with constructor-based data terms and patterns. This notion is based
on reduction steps that are needed to match an argument with respect to a given
pattern. We prove the Standardisation Theorem by using the technique developed
by Takahashi and Crary for lambda-calculus. The proof is based on the fact that
any development can be specified as a sequence of head steps followed by
internal reductions, i.e. reductions in which no head steps are involved.Comment: In Proceedings HOR 2010, arXiv:1102.346
Reconciling positional and nominal binding
We define an extension of the simply-typed lambda calculus where two
different binding mechanisms, by position and by name, nicely coexist. In the
former, as in standard lambda calculus, the matching between parameter and
argument is done on a positional basis, hence alpha-equivalence holds, whereas
in the latter it is done on a nominal basis. The two mechanisms also
respectively correspond to static binding, where the existence and type
compatibility of the argument are checked at compile-time, and dynamic binding,
where they are checked at run-time.Comment: In Proceedings ITRS 2012, arXiv:1307.784
Attractor Modulation and Proliferation in 1+ Dimensional Neural Networks
We extend a recently introduced class of exactly solvable models for
recurrent neural networks with competition between 1D nearest neighbour and
infinite range information processing. We increase the potential for further
frustration and competition in these models, as well as their biological
relevance, by adding next-nearest neighbour couplings, and we allow for
modulation of the attractors so that we can interpolate continuously between
situations with different numbers of stored patterns. Our models are solved by
combining mean field and random field techniques. They exhibit increasingly
complex phase diagrams with novel phases, separated by multiple first- and
second order transitions (dynamical and thermodynamic ones), and, upon
modulating the attractor strengths, non-trivial scenarios of phase diagram
deformation. Our predictions are in excellent agreement with numerical
simulations.Comment: 16 pages, 15 postscript figures, Late
- …