手机版

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文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)