我试图准确地理解它的作用(在方案中),但这没有多大意义。有人可以尝试用简单的术语来解释它吗?这将不胜感激!
有问题的问题
我们将通过使用以下参数来代表一个国家:数十亿美元的 GDP、数百万平方英里的面积和数百万人口。编写一个消息传递过程(make-country-mp gdp area population),返回一个响应以下消息的对象:
•'gdp; 只需返回 gdp
• '区域 ; 只需返回该区域
• '人口 ; 简单地返回人口
• '流行密度; 返回人口除以面积
• '人均国内生产总值 ; 返回 GDP 除以人口
• 'is-biger ; 返回一个接收另一个国家消息传递对象的过程,如果第一个国家(原始国家)的面积大于第二个国家(传入的国家)的面积,则返回方案布尔值 true,否则返回 false。
旁注:我确实有大部分问题的工作代码,但我只想解释它是如何工作的。我所要做的就是遵循消息传递工作方式的一般形式,但我一点也不明白。这里是
(define (make-country-mp gdp area population)
(define (dispatch msg)
(cond ((equal? msg 'gdp) gdp)
((equal? msg 'area) area)
((equal? msg 'population) population)
((equal? msg 'pop-density) (/ population area))
((equal? msg 'gdp-per-capita) (/ gdp population))
;((equal? msg 'is-bigger) ; unsure of the code here
(else (error "invalid option" msg))))
dispatch)