ACM Home Page
Please provide us with feedback. Feedback
Functional pearl: i am not a number--i am a free variable
Full text PdfPdf (99 KB)
Source Haskell archive
Proceedings of the 2004 ACM SIGPLAN workshop on Haskell table of contents
Snowbird, Utah, USA
SESSION: Session I table of contents
Pages: 1 - 9  
Year of Publication: 2004
ISBN:1-58113-850-4
Authors
Conor McBride  University of Durham, Durham, England
James McKinna  University of St Andrews, St Andrews, Scotland
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 181,   Citation Count: 3
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1017472.1017477
What is a DOI?

ABSTRACT

In this paper, we show how to manipulate syntax with binding using a mixed representation of names for free variables (with respect to the task in hand) and de Bruijn indices [5] for bound variables. By doing so, we retain the advantages of both representations: naming supports easy, arithmetic-free manipulation of terms; de Bruijn indices eliminate the need for α-conversion. Further, we have ensured that not only the user but also the implementation need never deal with de Bruijn indices, except within key basic operations.Moreover, we give a hierarchical representation for names which naturally reflects the structure of the operations we implement. Name choice is safe and straightforward. Our technology combines easily with an approach to syntax manipulation inspired by Huet's 'zippers'[10].Without the ideas in this paper, we would have struggled to implement EPIGRAM [19]. Our example-constructing inductive elimination operators for datatype families-is but one of many where it proves invaluable.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
 
3
 
4
 
5
N. G. de Bruijn. Lambda Calculus notation with nameless dummies: a tool for automatic formula manipulation. Indagationes Mathematic, 34:381--392, 1972.
 
6
F. de Saussure. Course in General Linguistics. Duckworth, 1983. English translation by Roy Harris.
 
7
 
8
G. Gentzen. The collected papers of Gerhard Gentzen. North-Holland, 1969. Edited by Manfred Szabo.
 
9
G. Huet. The Constructive Engine. In R. Narasimhan, editor, A Perspective in Theoretical Computer Science. World Scientific Publishing, 1989. Commemorative Volume for Gift Siromoney.
 
10
 
11
 
12
 
13
 
14
S. Kleene. Introduction to Metamathematics. van Nostrand Rheinhold, Princeton, 1952.
 
15
 
16
 
17
 
18
C. McBride. Epigram, 2004. http://www.dur.ac.uk/CARG/epigram.
 
19
 
20
 
21
 
22
 
23
 
24
D. Prawitz. Natural Deduction-A proof theoretical study. Almquist and Wiksell, Stockholm, 1965.
 
25


Collaborative Colleagues:
Conor McBride: colleagues
James McKinna: colleagues