Map Calculus in GIS a proposal and demonstration(10)

发布时间:2021-06-07

This paper provides a new representation for fields (continuous surfaces) in Geographical Information Systems (GIS), based on the notion of spatial functions and their combinations. Following Tomlin’s (1990) Map Algebra, the term “Map Calculus” is used

is largely based on Hudak’s (1989) excellent overview, which should serve any interested

reader as an introduction to these topics.

The Lambda Calculus was presented by Alonzo Church (1941) and, although not

explicitly aimed at the development of computer languages (as none existed at that time),

has had lasting influence, especially in the field of computer languages. The Lambda

Calculus is mainly concerned with the ability to represent functions as a set of symbols

and with providing rules for their manipulation. Using few simple notations and rules,

the calculus provides a powerful set of tools to describe functions, function applications

(where the free variables have been substituted with specific values) and recursions.

Together with the Turing machine, it has influenced the creation of computer languages

and compilers (Rosser, 1982; Gunter, 1992). As Hudak (1989) noted, most of the

languages in use in the Geographical Information Science (GISc) field (such as C, C++,

Pascal or Java) use many of the properties of the Lambda Calculus, albeit implicitly.

These types of language are known as imperative languages as they rely on an implicit state

which is modified through commands that are usually applied in a sequence. For

example, the assignment in C “a = 1” binds the value 1 to the variable a and this

state is used in subsequent commands, such as a++. In contrast, declarative languages, such

as Prolog, do not have implicit states and programming is carried out by using

expressions.

Functional languages use functions as a computational model. They are characterised by the

use of an explicit state and the reliance on recursion to accomplish iterations (loops)

(Hudak, 1989). The first functional language, Lisp, was invented by J. McCarthy in the

late 1950s, although it must be noted that the influence of the Lambda Calculus on its

original concepts was minimal (Stoyan, 1984). Subsequent implementations of Lisp, such

as Scheme, have a clearer link to the theoretical grounding of Lambda Calculus and are

used throughout the world to teach functional languages. However, for the purists, Lisp

and Scheme are not “right” as they enable assignments and have other aspects that

“contaminate” the implementation. Far less popular languages such as Haskel, Miranda

or ML are considered “pure” functional languages. The following snippet of Scheme

code demonstrates how functions that measure the length of a polyline would look in a

functional language:

(define power2

(lambda (x) (* x x))

Map Calculus in GIS a proposal and demonstration(10).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219