关闭广告
晋江论坛网友交流区简单武侠
主题:求助:谁对scheme编程比较熟? [12]
收藏该贴
已收藏
只看楼主
俺的作业做不下去了
从problem3开始

这个是作业的链接
http://www.student.cs.uwaterloo.ca/~cs241/a/6/

我写的3不知道哪里不对
(define eval-postfix
  (lambda (L)
     (letrec
      ((addstack
       (lambda (x S)
        (cond
           ((null? (car x))  S)
           ((number? (car x)) (cons (car x) S))
           ((eq? + (car x)) (cons (+ (car S) (cadr S)) ()))
           ((eq? - (car x)) (cons (- (car S) (cadr S)) ()))
           ((eq? * (car x)) (cons (* (car S) (cadr S)) ()))
           ((eq? / (car x)) (cons (/ (car S) (cadr S)) ()))
))))

        (eval-postfix (addstack L ’()))
    )))
№0 ☆☆☆杨叛 2004-12-03 01:34:29留言☆☆☆  加书签 不再看TA

不会用
不过给老大顶一下,大家来看看有没有拿手的
№1 ☆☆☆天笑2004-12-03 01:52:55留言☆☆☆ 
加书签 引用 不再看TA

介是啥啊?头一次见
№2 ☆☆☆幽幻2004-12-03 06:33:05留言☆☆☆ 
加书签 引用 不再看TA

哇, 好高深啊, 含着手指看傻了。
№3 ☆☆☆C2004-12-03 06:57:48留言☆☆☆ 
加书签 引用 不再看TA

顺便咬一口指头,看自己是不是做梦
№4 ☆☆☆天笑2004-12-03 07:16:28留言☆☆☆ 
加书签 引用 不再看TA

顺便咬一口指头,看自己是不是做梦
  
☆☆☆天笑于2004-12-03 07:16:28留言☆☆☆
 
笑笑, 你, 你。。。
 
好吧, 借你的手指来咬。
№5 ☆☆☆C2004-12-03 08:43:27留言☆☆☆ 
加书签 引用 不再看TA

老大,我问了几个朋友,他们好像今年没谁拿241。。。我愧对老大,我有错。。。
(慕容汗颜,大哭着跑开。。。。。。)
№6 ☆☆☆慕容凝风2004-12-03 15:23:24留言☆☆☆ 
加书签 引用 不再看TA

老大好象是学生物的...
№7 ☆☆☆yogomove2004-12-03 19:49:38留言☆☆☆ 
加书签 引用 不再看TA

这些是最简单的...那道就是栈
另:我是学OI的,但是没听说过scheme,我用pascal或者c的话解决很方便
再另:这个语言没有普及潜力,太难懂...
№8 ☆☆☆yogomove2004-12-03 19:52:16留言☆☆☆ 
加书签 引用 不再看TA

try this(not sure works or not)...
u should figure out syntax error...it is a prefix arithmetic evaluation for scheme, right?
actually I dont know scheme at all...but I know a little bit about functional programming...years ago...
 
(define (eval-postfix expr)
  (cond ;; self-evaluating object?  (we only handle numbers)
        ((number? expr)
         expr)
        ;; compound expression? (we only handle two-arg combinations)
        (else
         (eval-postfix-combo expr))))
 
(define eval-postfix-combo
(let ((arg1 car expr)
(arg2 cadr expr)
(operator caddr expr))
 (cond ((eq? operator ’+)
            (+ arg1 arg2))
           ((eq? operator ’-)
            (- arg1 arg2))
           ((eq? operator ’*)
            (* arg1 arg2))
           ((eq? operator ’/)
            (/ arg1 arg2))
           (else
            (error "Invalid operation in expr:" expr)))))
 
№9 ☆☆☆顾遇2004-12-04 11:28:21留言☆☆☆ 
加书签 引用 不再看TA

顶一下,老大看
 
谢谢楼上帮忙
№10 ☆☆☆天笑2004-12-05 02:54:06留言☆☆☆ 
加书签 引用 不再看TA

不懂,帮顶。
№11 ☆☆☆peacemaker2004-12-05 09:30:15留言☆☆☆ 
加书签 引用 不再看TA

好像是用栈来实现中缀和后缀表达式的转换
不过俺不懂也没听说过scheme,不怎么看得懂
惭愧啊......
№12 ☆☆☆SOUP2004-12-05 11:56:11留言☆☆☆ 
加书签 引用 不再看TA

回复此贴子

名字:
选择图案:
内容:
(注意:一次最多可提交5000字,且一次最多可提交三张尺寸在1024*1024范围内的图片,超出部分请分次提交!)
图片链接:
(贴图规则)


返回上层 管理 返回本版块首页返回交流区首页返回主页

 

只看楼主