小编Eli*_*lay的帖子

如何使用Dr. Racket逐步调试Scheme程序?

我正在使用Dr. Racket开发环境和语言定义#lang scheme为课程工作.但是,我不确定如何最好地使用此工具进行调试.我希望能够执行一个函数并逐步执行它,在执行的各个点观察不同函数的值.

这可能吗?如果没有,那么逐步执行Scheme程序并调试它的典型方法是什么?

debugging scheme racket

10
推荐指数
1
解决办法
6354
查看次数

当省略'else'时,Scheme'cond'子句会发生什么?

我正在学习Scheme.我最近花了(太多!)时间试图找到程序中的错误,然后才意识到我错过了cond子句中的'else'字样.但在这种情况下的行为似乎有点奇怪.只用一个简单的程序(下面)试验条件,'else'在else子句中按预期显示,但也会显示,但没有'else',会显示周围的双引号和未解释的新引号字面打印.任何人都可以向我解释发生了什么事吗?TIA.

   (define (foo x)
    (cond ((eq? x 0) (display "zero\n"))
          (display "whatever\n")))

   (define (bar x)
    (cond ((eq? x 0 ) (display "zero\n"))
          (else (display "whatever\n"))))

In the repl window:
Welcome to DrScheme, version 4.1.5 [3m].
Language: Pretty Big; memory limit: 128 megabytes.
> (foo 0)
zero
> (bar 0)
zero
> (foo 2)
"whatever\n"
> (bar 2)
whatever
> 
Run Code Online (Sandbox Code Playgroud)

scheme racket

9
推荐指数
2
解决办法
7564
查看次数

android清单中的intent-filter可以有多少个scheme和host标签

需要有关manifest中指定的intent-filter标记的更多信息.我知道我们可以用两种形式指定数据:

<intent-filter>
     <data android:host="com.myHost" android:scheme="content"/>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

AND:

<intent-filter>
     <data android:scheme="content"/>
     <data android:host="com.myHost"/>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

但我想知道可以存在几种组合,比如

<intent-filter>
         <data android:host="com.myHost" android:scheme="content"/>
         <data android:scheme="content"/>
         <data android:host="com.myHost1"/>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

要么:

<intent-filter>
         <data android:host="com.myHost" android:scheme="content"/>
         <data android:scheme="content"/>
         <data android:host="com.myHost1"/>
         <data android:scheme="content"/>
         <data android:host="com.myHost2"/>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

在最后一种情况下,我首先想知道这是否存在以及如何确定哪个主机用于哪个方案,因为包含方案和主机的数据标签可以按任何顺序出现.

请帮忙.

android host intentfilter android-manifest

9
推荐指数
2
解决办法
1万
查看次数

Ghuloum使用什么方案?

我正在努力通过编译器: Abdulaziz Ghuloum的后端到前端(并再次回到前面).它似乎缩写为完整课程/研讨会中的预期,所以我试图自己填写这些内容.

例如,我试图在DrScheme的R5RS风格中使用他的测试框架,但它似乎不喜欢宏的东西:

src/ghuloum/tests/tests-driver.scm:6:4: read: illegal use of open square bracket
Run Code Online (Sandbox Code Playgroud)

我已经阅读了他关于课程的介绍文章,编译器构建的增量方法,它对所使用的技术进行了很好的概述,并提到了一些可能需要为"额外信用"实现的功能的方案,但他没有没有提到他在课程中使用的计划.

更新

我还在深入研究原始问题(调查以下Eli建议的Petit Scheme等选项),但发现了一个与Gholoum工作有关的有趣链接,所以我将其包括在内.

[Ikarus Scheme](http://en.wikipedia.org/wiki/Ikarus_ (Scheme_implementation ))是Ghuloum的想法的实际实现,并且似乎是他的博士学位的一部分.工作.它应该是R6RS的首批实现之一.我现在正在尝试安装Ikarus,但是配置脚本不想识别我的系统安装的libgmp.so,所以我的问题仍未得到解决.

以下示例似乎适用于使用Pretty Big在DrEd中运行的PLT 2.4.2

(require lang/plt-pretty-big)

(load "/Users/donaldwakefield/ghuloum/tests/tests-driver.scm") 
(load "/Users/donaldwakefield/ghuloum/tests/tests-1.1-req.scm") 
(define (emit-program x) 
  (unless (integer? x) (error "---")) 
  (emit " .text") 
  (emit " .globl scheme_entry") 
  (emit " .type scheme_entry, @function") 
  (emit "scheme_entry:") 
  (emit " movl $~s, %eax" x) 
  (emit " ret")
  )
Run Code Online (Sandbox Code Playgroud)

尝试用#lang方案替换require指令会导致错误消息

foo.scm:7:3: expand: …
Run Code Online (Sandbox Code Playgroud)

scheme racket

8
推荐指数
1
解决办法
1926
查看次数

在错误合并git分支后,Xcode 4中的"无方案"问题的最佳解决方案

合并冲突问题后得到"无方案"问题

自动合并SampleProject.xcodeproj/project.pbxproj CONFLICT(内容):SampleProject.xcodeproj/project.pbxproj中的合并冲突自动合并失败; 修复冲突,然后提交结果.

合并冲突时我肯定采取了一些错误的操作.问题是,在这种情况下,是否有解决"无方案"问题的最佳解决方案.

git merge ios xcode4

7
推荐指数
2
解决办法
5618
查看次数

eq之间的区别?和=在Scheme?

    > (eq? 1 1)
    #t
    > (eq? 1.1 1.1)
    #f
    > (= 1.1 1.1)
    #t
Run Code Online (Sandbox Code Playgroud)

这是DrScheme中的交互窗口.有人可以解释一下=和eq之间的区别吗?在Scheme?

scheme racket

6
推荐指数
1
解决办法
6292
查看次数

"参数化"在DrScheme中做了什么?

我试图理解这里的示例代码(下面的例子).我不明白参数化构造.它的文档在这里,但它们没有帮助.它有什么作用?

scheme functional-programming racket

6
推荐指数
1
解决办法
451
查看次数

方案中的"未绑定标识符"错误

我正在使用drscheme:http: //www.archlinux.org/packages/extra/x86_64/drscheme/

我正在尝试使用我的教科书中的示例代码,但我不断收到"未绑定标识符"错误.是因为方案解释器配置不正确吗?或者代码是完全错误的?

这里有一些例子:

输入:

#lang scheme
(define (equalimp lis1 lis2)
        (COND
         ((NULL? lis1) (NULL? lis2))
         ((NULL? lis2) '())
         ((EQ? (CAR lis1) (CAR lis2)) (equalimp (CDR lis1) (CDR lis2)))
         (ELSE '())
))
Run Code Online (Sandbox Code Playgroud)

输出:

欢迎来到DrScheme,版本4.2.5 [3m].语言:方案; 内存限制:128 MB.

expand:模块中的未绑定标识符:COND

输入:

#lang scheme
(define (quadratic_roots a b c)
  (LET (
        (root_part_over_2a
         (/ (SQRT (- (* b b) (* 4 a c))) (* 2 a)))
        (minus_b_over_2a (/ (- 0 b) (* 2 a)))
       )
  (DISPLAY (+ minus_b_over_2a root_part_over_2a))
  (NEWLINE)
  (DISPLAY (- …
Run Code Online (Sandbox Code Playgroud)

scheme racket

6
推荐指数
1
解决办法
3万
查看次数

Android自定义方案无法在某些设备上运行

我已经为我的应用程序制作了自定义方案,将其添加到我在android清单中的活动:

 <activity android:name=".TabHostActivity"
              android:label="@string/app_name"
               android:configChanges="orientation|keyboardHidden">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
         <intent-filter>
            <action android:name="android.intent.action.VIEW" />
                 <category android:name="android.intent.action.DEFAULT" />
                 <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.LAUNCHER" />
                 <data  android:scheme="myscheme" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

当我写"myscheme://"我在Android浏览器中打开我的应用程序(在某些设备上).问题是这不适用于三星Galaxy和Xperia游戏.它只在谷歌上搜索myscheme://.

有谁知道这里有什么不对吗?

任何帮助将不胜感激 :)

android manifest browsable

6
推荐指数
1
解决办法
1072
查看次数

SBT:如何从一项聚合任务中排除一个子项目

我有一堆子项目,我定义如下(实际上由 a 生成project/meta.sbt):

lazy val Top = (project in file("."))
  .aggregate(common, p1, p2, tests, scripts)
  .dependsOn(common, p1, p2, tests, scripts)
lazy val common = project
lazy val p1 = project.dependsOn(common % "compile->compile;test->test")
lazy val p2 = project.dependsOn(common % "compile->compile;test->test")
lazy val tests = project.dependsOn(common % "compile->compile;test->test")
lazy val scripts = project
Run Code Online (Sandbox Code Playgroud)

AFAICT(所以也许这是错误的),顶部的aggregatedependsOn都有意义:第一个在所有子项目中运行任务,第二个方便调试东西。

现在,问题是它只tests包含一堆测试,并且scripts是一个用作发布步骤的脚本——所以我需要以某种方式使其避免仅为它们创建 jar 文件。我仍然希望compile/ test/etc 被聚合,包括它们。

我对文档的理解是,这应该通过aggregate在 中设置密钥来完成Top,并且实际上添加类似的内容

  .settings(aggregate in …
Run Code Online (Sandbox Code Playgroud)

scala multi-project subproject sbt

6
推荐指数
0
解决办法
1764
查看次数