我在学习计划。我想为Gimp构建脚本-fu过滤器,所以我使用tinyscheme来执行我编写的脚本,但看起来tinyscheme的函数集非常有限,比如max、min和even?等函数都缺失了。(我希望有人在这里证明我错了。)
好的,实际上,我只想用scheme48执行一个Scheme脚本。我该怎么做?
例如,如何使用scheme48执行以下文件
(define (addx inNum inX)
(if (> (* inNum inX) 999) 0
(+ (* inNum inX) (addx inNum (+ 1 inX)))))
(display
(- (+ (addx 3 1) (addx 5 1)) (addx 15 1)))发布于 2013-01-02 18:13:07
我也无法成功地使用scheme48运行一个方案脚本(而且我还没有在手册中找到一个提示)。您也可以使用Guile (假设您正在使用linux或类似的东西):
#!/usr/local/bin/guile -s
!#
(define (addx in-num in-x)
(if (> (* in-num in-x) 999)
0
(+ (* in-num in-x) (addx in-num (+ 1 in-x)))))
(display (- (+ (addx 3 1) (addx 5 1)) (addx 15 1)))
(newline)保存它,然后运行:
$chmod u+x test.scm
./test.scm
233168
$(顺便问一句:请不要像C那样格式化方案)。
编辑
根据Scheme48邮件列表上的Mike的一篇文章,打蛋器是行不通的。可以通过以下方式来明确地调用Scheme48:
#!/bin/bash
scheme48 -a batch << EOF
(letrec ((fac (lambda (n)
(if (= n 1)
1
(* n (fac (- n 1)))))))
(fac 5))
EOF
$ ./test.scm
120https://stackoverflow.com/questions/14126397
复制相似问题