免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7259 | 回复: 12
打印 上一主题 下一主题

程序求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-16 13:55 |只看该作者 |倒序浏览
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

[ 本帖最后由 goodstart 于 2008-11-17 23:06 编辑 ]

评分

参与人数 1可用积分 -10 收起 理由
flw -10 leech 的典型例子,并且是本版第一例, ...

查看全部评分

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2008-11-16 14:47 |只看该作者
你自己先试着写呗,作业始终是要你自己做的。

论坛徽章:
0
3 [报告]
发表于 2008-11-16 16:35 |只看该作者

回复 #2 MMMIX 的帖子

写不出才会想到来这里求助的 谢谢你

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2008-11-16 17:13 |只看该作者
原帖由 goodstart 于 2008-11-16 16:35 发表
写不出才会想到来这里求助的  

就拿

  1. prefix-eval '(+2 3))
复制代码

来说吧。这个要怎么求值呢?

'(+ 2 3) 是个 list,既然是 prefix expression,那第一个肯定是 operator,取出来看看,是个 '+',binary operator,需要两个 operand,那再把 list 的后两个元素取出来,做加法得到一个和 suml。

当然,若 operator 后面跟的不是数字而是另外一个 operator,则需要先递归调用 prefix-eval 得到 operands 的值,然后再处理当前的 operator。

你就照这个思路往下写吧。

其实写程序也没啥,就是把你解决问题的方法用代码表达出来而已。

[ 本帖最后由 MMMIX 于 2008-11-16 20:50 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-11-16 19:15 |只看该作者
原帖由 goodstart 于 2008-11-16 16:35 发表
写不出才会想到来这里求助的 谢谢你


上次我建议您看一看前缀表达式求值规律,不知你看了没有。这个跟 scheme 是没有太大关系的。


  1. (define (prefix-eval expr)
  2.   (define (f expr)
  3.     (cond ((number? (car expr)) expr)
  4.           (else (let* ((t1 (f (cdr expr)))
  5.                          (t2 (f (cdr t1))))
  6.                    (cons ((getopt (car expr)) (car t1) (car t2))
  7.                          (cdr t2))))))
  8.   (car (f expr)))

  9. (define (getopt op)
  10.   (cond ((eq? op '+) +)
  11.         ((eq? op '-) -)
  12.         ((eq? op '/) /)
  13.         ((eq? op '*) *)))
复制代码


  1. guile> (prefix-eval '(* + 7 * * 4 6 + 8 9 5))
  2. 2075
复制代码

[ 本帖最后由 win_hate 于 2008-11-16 20:36 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2008-11-17 00:49 |只看该作者

回复 #5 win_hate 的帖子

这个不是需要的程序吗?

论坛徽章:
0
7 [报告]
发表于 2008-11-17 01:30 |只看该作者

回复 #5 win_hate 的帖子

我运行了那个程序 有结果 是对的 但是不明白 t1 和 t2 是什么

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
8 [报告]
发表于 2008-11-17 09:47 |只看该作者
原帖由 goodstart 于 2008-11-17 01:30 发表
我运行了那个程序 有结果 是对的 但是不明白 t1 和 t2 是什么

楼主对 Schemem 的语法似乎比我还陌生 :em11:  写不出来总应该看得懂吧?

论坛徽章:
0
9 [报告]
发表于 2008-11-17 09:51 |只看该作者

回复 #8 MMMIX 的帖子

不好意思

现在看懂了

论坛徽章:
0
10 [报告]
发表于 2008-11-17 09:52 |只看该作者

回复 #8 MMMIX 的帖子

我太着急了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP