V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
felix021
V2EX  ›  程序员

有人在学scheme或者对scheme比较熟悉么?最近在看SICP……

  •  
  •   felix021 ·
    felix021 · 2013-08-03 18:13:18 +08:00 · 5157 次点击
    这是一个创建于 4165 天前的主题,其中的信息可能已经有所发展或是发生改变。
    @huangz 同学有个 SICP 解题集 ( http://sicp.readthedocs.org/en/latest/ ) 不错,但是觉得学习的时候还是需要个可以一起讨论的基友啊。

    比如说目前我在用 racket ,遇到的一个问题就是在非REPL环境下(比如用racket执行某个脚本) (load "xxx.scm") 不能将 xxx.scm 中的变量导入到当前的namespace。文档很罗嗦,看起来也不明所以……所以每次需要用之前的代码的时候我都是直接拷贝了一份,很蛋疼。
    16 条回复    1970-01-01 08:00:00 +08:00
    felix021
        1
    felix021  
    OP
       2013-08-03 18:27:42 +08:00
    原来huangz同学也在v2ex上,居然at到了……
    Golevka
        2
    Golevka  
       2013-08-03 19:43:28 +08:00
    (provide (all-defined-out))
    (require "XXX")
    jiyinyiyong
        3
    jiyinyiyong  
       2013-08-03 19:50:55 +08:00
    豆瓣 Lisp 小组, Scheme 小组, Lisp-cn 邮件列表, 基友应该能不少
    felix021
        4
    felix021  
    OP
       2013-08-04 00:05:27 +08:00
    @Golevka 不是很明白。。。

    简单地说,我想在 foo.scm 里面定义一个函数 bar ,比如

    (define (bar) (display "hello world\n"))

    现在有个 test.scm ,我希望可以在里头

    (load "foo.scm")
    (bar)

    这两句如果直接在 racket 的REPL里头是可以正常执行的,但是如果用racket来执行 foo.scm ($ racket foo.scm) 就会提示"unbound identifier in module in: bar"

    文档里提到的各种方法(比如#lang racket/load、(module foo racket (define (bar) ...))、(require 'foo) 什么的都去摸索过,但是……全都不行。
    felix021
        5
    felix021  
    OP
       2013-08-04 00:06:20 +08:00
    @jiyinyiyong 多谢,平时不玩豆瓣没想起来。。我去加入了scheme和racket的小组
    tioover
        6
    tioover  
       2013-08-04 00:12:28 +08:00
    最近在做习题,问题是 1.17 和 1.18 看起来不是一样的吗?

    还有就是racket 里面没有runtime 过程……
    felix021
        7
    felix021  
    OP
       2013-08-04 01:23:27 +08:00
    @tioover 貌似没什么区别。我也发现了,没有runtime也没有那个什么real-time-clock。

    顺便求加扣扣,可以多交流 扣扣: i#felix021.com ;#=>@
    felix021
        8
    felix021  
    OP
       2013-08-04 01:45:26 +08:00
    @tioover 貌似我扣扣权限设置有问题 查不到 囧。改成求加gtalk吧 felix021#gmail.com
    felix021
        9
    felix021  
    OP
       2013-08-04 02:32:38 +08:00
    ini
        10
    ini  
       2013-08-04 03:07:04 +08:00   ❤️ 1
    felix021
        11
    felix021  
    OP
       2013-08-04 11:29:01 +08:00
    @ini 唔 我跟你的进度比较接近诶,无节操求加IM
    ini
        12
    ini  
       2013-08-04 14:43:22 +08:00
    @felix021 不好意思,之前不在线,好像你早上加我gtalk了吧?关于SICP的可以多多交流~~
    ini
        13
    ini  
       2013-08-04 14:45:19 +08:00
    @tioover 不一样,一个是递归,一个是迭代
    ini
        14
    ini  
       2013-08-04 14:46:48 +08:00
    @felix021 如果你用Linux,建议用guile吧,它的warning和error提示感觉要比racket做得好
    tioover
        15
    tioover  
       2013-08-04 18:13:48 +08:00 via Android
    @ini 好像没明说递归所以我一开始就写成迭代的了233
    tioover
        16
    tioover  
       2013-08-04 18:19:21 +08:00 via Android
    @ini 哦 看了一下,原来要写类似fast-expt 的过程,而这个是递归的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2691 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:00 · PVG 18:00 · LAX 02:00 · JFK 05:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.