SML基础类型与操作详解
立即解锁
发布时间: 2025-08-18 00:31:27 阅读量: 1 订阅数: 3 

### SML基础类型与操作详解
#### 1. 问题分析与练习
首先来看一些问题描述,需要我们识别相关的初始集合、事物及其属性,并指定每个属性的类型。
| 问题描述 | 初始集合 | 事物 | 属性及类型 |
| --- | --- | --- | --- |
| 查找指定国家的首都 | 国家集合 | 国家 | 首都(字符串类型) |
| 查找指定剧院指定戏剧的下一场演出时间 | 剧院演出安排集合 | 演出 | 时间(字符串或时间类型) |
| 查找植物店中所有仙人掌的名称 | 植物店植物集合 | 仙人掌 | 名称(字符串类型) |
| 计算植物店中常绿树木的品种数量 | 植物店树木集合 | 树木 | 是否常绿(布尔类型),品种(字符串类型) |
| 查找学校中身高超过1.5米的所有六年级学生的姓名 | 学校学生集合 | 六年级学生 | 身高(实数类型),姓名(字符串类型) |
| 计算快餐店菜单上价格超过5美元的菜品数量 | 快餐店菜单集合 | 菜品 | 价格(实数类型) |
| 查找学校中与四年级学生生日相同的五年级学生的姓名 | 学校学生集合 | 五年级学生、四年级学生 | 生日(日期类型),姓名(字符串类型) |
| 检查特定大学部门中是否有人出生于1977年之前 | 大学部门人员集合 | 人员 | 出生年份(整数类型) |
| 查找电影院中戴眼镜的人的姓名 | 电影院人员集合 | 人员 | 是否戴眼镜(布尔类型),姓名(字符串类型) |
| 查找超市中来自纳米比亚的所有水果品种的名称 | 超市水果集合 | 水果 | 产地(字符串类型),名称(字符串类型) |
接下来,有两个表格数据,分别是城市详细信息表和人员信息表,我们需要根据这些数据解决一些问题。
城市详细信息表:
| 城市 | 地区 | 国家 |
| --- | --- | --- |
| Dundee | Tayside | Scotland |
| Brisbane | Queensland | Australia |
| Glasgow | Strathclyde | Scotland |
| Newcastle | New South Wales | Australia |
| Victoria | British Columbia | Canada |
| Newcastle | Northumbria | England |
人员信息表:
| 姓名 | 性别 | 年龄 | 是否会游泳 |
| --- | --- | --- | --- |
| Chris | female | 22 | yes |
| pat | male | 17 | no |
| Jo | female | 21 | yes |
| Chris | male | 20 | yes |
| Pat | female | 19 | no |
| Jo | male | 18 | yes |
下面是根据这些表格需要解决的问题及解决思路:
##### 城市表格相关问题
- **查找所有城市**:遍历表格,依次取出每个条目的城市名称。
- **查找所有地区和对应的国家**:遍历表格,依次取出每个条目的地区和国家名称。
- **查找苏格兰的所有城市**:遍历表格,筛选出国家为苏格兰的条目,取出其城市名称。
- **查找澳大利亚的所有城市和地区**:遍历表格,筛选出国家为澳大利亚的条目,取出其城市和地区名称。
- **查找有城市名为Newcastle的所有国家**:遍历表格,筛选出城市名为Newcastle的条目,取出其国家名称。
- **计算所有条目数量**:依次遍历表格中的每个条目,每遍历一个条目,计数器加1。
- **计算所有澳大利亚条目的数量**:遍历表格,筛选出国家为澳大利亚的条目,每筛选出一个条目,计数器加1。
##### 人员表格相关问题
- **计算会游泳的女性人数**:遍历表格,筛选出性别为女性且会游泳的条目,每筛选出一个条目,计数器加1。
- **查找不会游泳的男性的年龄**:遍历表格,筛选出性别为男性且不会游泳的条目,取出其年龄。
- **查找年龄至少为20岁的所有人的姓名和性别**:遍历表格,筛选出年龄至少为20岁的条目,取出其姓名和性别。
- **计算所有人的总年龄**:遍历表格,依次取出每个条目的年龄,将其累加到总和中。
- **计算所有名为Jo的人的总年龄**:遍历表格,筛选出姓名为Jo的条目,取出其年龄,将其累加到总和中。
- **计算会游泳的女性的总年龄**:遍历表格,筛选出性别为女性且会游泳的条目,取出其年龄,将其累加到总和中。
- **计算名为Pat且年龄小于20岁的人数**:遍历表格,筛选出姓名为Pat且年龄小于20岁的条目,每筛选出一个条目,计数器加1。
- **计算名为Pat或名为Jo的人数**:遍历表格,筛选出姓名为Pat或姓名为Jo的条目,每筛选出一个条目,计数器加1。
- **检查是否所有人都会游泳**:遍历表格,检查每个条目的是否会游泳属性,如果有一个条目为no,则返回false,否则返回true。
- **检查是否所有人都会游泳或名为Jo**:遍历表格,检查每个条目的是否会游泳属性和姓名,如果有一个条目既不会游泳且姓名不为Jo,则返回false,否则返回true。
- **检查是否所有男性都会游泳**:遍历表格,筛选出性别为男性的条目,检查每个条目的是否会游泳属性,如果有一个条目为no,则返回false,否则返回true。
- **检查是否所有女性年龄都超过19岁**:遍历表格,筛选出性别为女性的
0
0
复制全文
相关推荐










