Instruct: Identify the main and secondary category of Arxiv papers based on the titles and abstracts
Query: Scheme Macros for Non-linear Pattern Matching with Backtracking for
  Non-free Data Types   Pattern matching is an important feature of programming languages for data
abstraction. Many pattern-matching extensions have been proposed and
implemented for extending the range of data types to which pattern matching is
applicable. Among them, the pattern-matching system proposed by Egi and
Nishiwaki features practical pattern matching for non-free data types by
providing an extensible non-linear pattern-matching facility with backtracking.
However, they implemented their proposal only in an interpreter of the Egison
programming language, and a method for compiling pattern-matching expressions
of Egison was not discussed. This paper proposes a method for translating a
program that contains pattern-matching expressions of Egison to a program that
contains only the existing syntax constructs of functional programming
languages. This method is based on the three key ideas: (i) transformation of a
matcher to a function that takes a pattern and a target, and returns lists of
triples of a pattern, a matcher, and a target; (ii) compilation of match-all to
application of the map function; (iii) transformation of a value pattern to a
function that takes an intermediate pattern-matching result and returns a
value. This paper shows the proposed method works by showing Scheme macros that
provide the users the pattern-matching facility of Egison. This paper also
presents benchmark results that show Egison pattern-matching embedded in Gauche
Scheme is faster than the original Egison interpreter.

29
The categories of this paper are: funct-an
33
The categories of this paper are: plasm-ph
17
The categories of this paper are: q-fin
18
The categories of this paper are: econ
6
The categories of this paper are: astro-ph
24
The categories of this paper are: dg-ga
34
The categories of this paper are: chem-ph
11
The categories of this paper are: hep-lat
30
The categories of this paper are: q-alg
20
The categories of this paper are: acc-phys
13
The categories of this paper are: quant-ph
23
The categories of this paper are: solv-int
26
The categories of this paper are: bayes-an
32
The categories of this paper are: atom-ph
27
The categories of this paper are: comp-gas
5
The categories of this paper are: gr-qc