A new approach to procedures with variable arity
Lisp and Symbolic Computation
Type reconstruction for variable-arity procedures
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Contracts for higher-order functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
Faking it Simulating dependent types in Haskell
Journal of Functional Programming
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
The standard ML basis library
Interlanguage migration: from scripts to programs
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Proceedings of the 2007 ACM symposium on Applied computing
The design and implementation of typed scheme
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Extending Dylan's type system for better type inference and error detection
Proceedings of the 2010 international conference on Lisp
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Generic programming with dependent types
SSGIP'10 Proceedings of the 2010 international spring school conference on Generic and Indexed Programming
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
Hi-index | 0.00 |
Just as some functions have uniform behavior over distinct types, other functions have uniform behavior over distinct arities. These variable-arity functions are widely used in scripting languages such as Scheme and Python. Statically typed languages also accommodate modest forms of variable-arity functions, but even ML and Haskell, languages with highly expressive type systems, cannot type check the wide variety of variable-arity functions found in untyped functional languages. Consequently, their standard libraries contain numerous copies of the same function definition with slightly different names. As part of the Typed Scheme project--an on-going effort to create an explicitly typed sister language for PLT Scheme--we have designed and implemented an expressive type system for variable-arity functions. Our practical validation in the context of our extensive code base confirms the usefulness of the enriched type system.