前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BSL编程语言 —— 系统化程序设计

BSL编程语言 —— 系统化程序设计

作者头像
主机优惠
修改2019-06-20 17:49:31
1.3K0
修改2019-06-20 17:49:31
举报
文章被收录于专栏:云优惠券云优惠券

BSL编程语言简介

文章目录

0. 选择编程语言

1. 写简单的表达式(Expression)

2. 表达式求值

3. 字符串和图像

4. 常数

0. 选择编程语言

如果你第一次使用DrRacket,打开后需要选择Beginning Student Language (BSL)

Language -> Choose Language (或直接按Ctrl + L),看到如下洁面后选择Beginning Student,点击OK

定义区【Definition Area】—写代码的地方

互动区【Interactive Area】 — 代码结果输出的地方

1. 写简单的表达式(Expression)

让我们从最简单的四则运算开始【所有BSL表达式都必须在()中】

(+ 3 4)

1

点击右上角的运行按钮,互动区将显示7。其中,+是运算符(operator),3和4操作数(operand)。BSL使用前缀表示法,即把运算符放在前面,操作数放在后面。这与函数f(x)的表达方法相同,也保持了一致性,但与3+4的表达方法略有不同。即使是简单的表达式,如果将多个数字相加,只需要写1次加号:

(+ 3 3 1) ; + can add more than 2 numbers

1

上面的表达式中,;表示注释,该行在分号后的内容运行时都将被忽略,可以用于解释代码。

表达式可以相互嵌套,下面的表达式同样返回7.

(+ 3 (* 2 2))

1

加(+)减(-)乘(*)除(/)都可以进行运算,这里再引入两个运算sqr和sqrt:

(sqr 2) ; 计算2的平方,4

(sqrt 4) ; 计算4的平方根,2

1

2

2. 表达式求值

原始表达式求值规则(从左到右,从内到外):

首先对操作数求值

然后会原始表达式求值

To evaluate a primitive call:

first reduce operands to values

apply primitives to the values

; Example

; 从左到右,2个数相乘,从左到右,从内到外,依次求值

; =============================================

(/ (* 3 4) (+ (- 7 4) 3))

(/ 12 (+ (- 7 4) 3))

(/ 12 (+ 3 3))

(/ 12 6)

2

1

2

3

4

5

6

7

8

3. 字符串和图像

字符串是一系列由双引号框起来的字符组,如"Hello"。

对于字符串的主要操作

(string-append "hello" "_" "world") ; 连接字符串,返回"hello_world"

(string-length "hello") ; 求字符串长度,返回5

(substring "hello" 1 3) ; 取字符串的一部分,返回"el"

; 0-based indexing:

; substring有三个参数,字符串,开始位置,结束位置(不包括)

; "hello"

; "01234"

; (substring "hello" 1 3) 返回 "el"

1

2

3

4

5

6

7

8

9

使用任何图形函数都需要在BSL文件头加入(require 2htdp/image),使用库中的相关函数。

; 一些基本图形

(circle 10 "solid" "red")

(rectangle 20 40 "outline" "blue")

(text "Hello" 24 "orange")

1

2

3

4

除了基本图形之外,我们还可以组合出一些更有趣的图形

; 一些图形组合

(above (circle 20 "solid" "red")

(circle 20 "solid" "yellow")

(circle 20 "solid" "green"))

(overlay (circle 10 "solid" "red")

(circle 20 "solid" "yellow")

(circle 30 "solid" "green"))

1

2

3

4

5

6

7

8

4. 常数

定义常数,可以增加程序的可读性,并方便日后的修改

通常,使用大写字母作为常数名称,定义时可以用表达式作为常数名的值

(define WIDTH 400)

(define WIDTH-TO-HEIGHT 1.5)

(define HEIGHT (* WIDTH WIDTH-TO-HEIGHT)) ; 用表达式定义常数

---------------------

作者:CSDoneRight

来源:CSDN

原文:https://blog.csdn.net/CSDoneRight/article/details/90720786

版权声明:本文为博主原创文章,转载请附上博文链接!

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档