Transfer reference: added metavariable section and implementation status section.

This commit is contained in:
bringert
2005-12-07 09:46:21 +00:00
parent 8957bae1ba
commit 141fa43eb8
2 changed files with 105 additions and 60 deletions

View File

@@ -2,7 +2,6 @@ Transfer language reference
Author: Björn Bringert <bringert@cs.chalmers.se>
Last update: %%date(%c)
% NOTE: this is a txt2tags file.
% Create an html file from this file using:
% txt2tags transfer.txt
@@ -11,10 +10,6 @@ Last update: %%date(%c)
%!options(html): --toc
This document describes the features of the Transfer language.
See the [Transfer tutorial transfer-tutorial.html]
for an example of a Transfer program, and how to compile and use
@@ -23,6 +18,16 @@ Transfer programs.
Transfer is a dependently typed functional programming language
with eager evaluation.
== Current implementation status ==
**Not all features of the Transfer language have been implemented yet**. The most
important missing piece is the type checker. This means that there are almost
no checks done on Transfer programs before they are run. It also means that
the values of metavariables are not inferred. Thus metavariables cannot
be used where their values matter. For example, dictionaries for overlaoded
functions must be given explicitly, not as metavariables.
== Layout syntax==
Transfer uses layout syntax, where the indentation of a piece of code
@@ -401,9 +406,22 @@ String literals can be used as patterns.
Integer literals can be used as patterns.
== Meta variables ==
== Metavariables ==
== Type classes ==
Metavariable are written as questions marks:
```
?
```
A metavariable is a way to the the Transfer type checker that:
"you should be able to figure out what this should be,
I can't be bothered to tell you".
Metavariables can be used to avoid having to give type variables
and dictionaries explicitly.
== Overloaded functions / Type classes ==
== Operators ==