Introduction to combinators and &lgr;-calculus
Introduction to combinators and &lgr;-calculus
Compiling functional languages
Compiling functional languages
Dynamic typing in a statically typed language
ACM Transactions on Programming Languages and Systems (TOPLAS)
A semantics for imprecise exceptions
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Dynamic Types and Type Dependent Functions
IFL '98 Selected Papers from the 10th International Workshop on 10th International Workshop
A Scheme Shell
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
Lazy dynamic input/output in the lazy functional language clean
IFL'02 Proceedings of the 14th international conference on Implementation of functional languages
Towards a strongly typed functional operating system
IFL'02 Proceedings of the 14th international conference on Implementation of functional languages
GEC: a toolkit for generic rapid prototyping of type safe interactive applications
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
Polytypic syntax tree operations
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
Hi-index | 0.00 |
We present a new shell that provides the full basic functionality of a strongly typed lazy functional language, including overloading. The shell can be used for manipulating files, applications, data and processes at the command line. The shell does type checking and only executes well-typed expressions. Files are typed, and applications are simply files with a function type. The shell executes a command line by combining existing code of functions on disk. We use the hybrid static/dynamic type system of Clean to do type checking/inference. Its dynamic linker is used to store and retrieve any expression (both data and code) with its type on disk. Our shell combines the advantages of interpreters (direct response) and compilers (statically typed, fast code). Applications (compiled functions) can be used, in a type safe way, in the shell, and functions defined in the shell can be used by any compiled application.