From 06c3d3e004425ba0e24b88217343b4146885f096 Mon Sep 17 00:00:00 2001 From: bringert Date: Wed, 7 Dec 2005 09:46:21 +0000 Subject: Transfer reference: added metavariable section and implementation status section. --- doc/transfer-reference.txt | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'doc/transfer-reference.txt') diff --git a/doc/transfer-reference.txt b/doc/transfer-reference.txt index dd16e2d39..a7d534363 100644 --- a/doc/transfer-reference.txt +++ b/doc/transfer-reference.txt @@ -2,7 +2,6 @@ Transfer language reference Author: Björn Bringert 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 == + +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. -== Type classes == +== Overloaded functions / Type classes == == Operators == -- cgit v1.2.3