Racket plt redex:捕获避免免费替换?

每次我在PLT redex中定义一种语言时,我都需要手动定义一个(避免捕获)替换函数。例如,此模型未完成,因为未定义subst: #lang racket/base (require redex/reduction-semantics) (define-language Λ [V ::= x (λ x M)] [M ::= (M M) V] [C ::= hole (V C) (C M)] [x ::= variable-not-otherwise-mentioned]) (

如何使用Racket计算从1到n的函数的和?

总和(2x-1,x=1…n)。我必须写一个递归函数来求和 (define (sum1 n) (if (= n 0) -1 (+ n (- 1 (sum1 (* n 1)))))) 这就是我到目前为止所拥有的,我太迷茫了。你的基本情况是1而不是0,因为你只是从1到n。因此,该函数仅在N上定义。因此,我们不需要考虑函数的 0代码/Case>(它只消耗代码> N< /代码> s)。p> 此外,递归调用应该将应用于2x-1的n添加到序列其余部分的总和。当前该函数没有终止,因

Racket 如何通过运行可执行文件打开Web服务器?

我一直在考虑把我的浏览器作为GUI使用,而不是使用Racket提供的GUI包 代码如下: #lang racket (require web-server/servlet web-server/servlet-env) (define (start req) (response/xexpr "Goodbye, World!")) (serve/servlet start #:port 8080 #:servlet-path "/") 当我在IDE中运行它时,它工作得很好。但是,当我尝试从

将未定义的图像放置在DrRacket中

在teachpack 2htdp图像中,有一个函数place images,它获取图像列表和posn列表,并将它们放置在场景中 试图在DrRacket中运行此函数 (require 2htdp/image) (place-images (list (circle 4 "solid" "white") (circle 4 "solid" "white") (circle 4 "solid" "white") (circle 4 "solid" "white"

Racket 计划中的列表

我想知道如何在Scheme中组合某些列表 特别是,我想合并一个列表,例如: (list 20 (list 10 (list 5 0))) 变成类似于: (list 20 10 5 0) 简单一点的就好了。谢谢。到目前为止你都试了些什么?您是否考虑过编写一个使用的函数?或者类似于函数的东西?在Racket中,有一个内置函数,可以完全满足您的需要,它被称为: (define lst (list 20 (list 10 (list 5 0)))) (flatten lst) => '(2

如何在Racket的标准库中查看方法的源代码?

例如,在racket/gui/base中的editorcanvas%类上有一个方法。它处理'wheel-up和'wheel-down事件,并将其他事件传递给canvas%上的方法 我想查看源代码,看看它是如何做到这一点的 我希望有一些类似的工具,但现在我甚至不知道racket/gui/base的源代码在哪里 在DrRacket IDE中,您可以将鼠标悬停在每个导入的符号上,然后右键单击。在菜单中有“打开定义文件”。单击此图标后,再次右键单击同一符号,并查看上次单击的位置,您将看到它显示“跳转到定

Racket 把图书馆当作语言?

我有几个文件是这样开头的: #lang racket/base (require "my-library.rkt") 如果我能以以下内容开始我的文件,我将非常高兴: #lang my-library 是否可以将库用作#lang?我需要对my library.rkt进行哪些更改?首先,使用以下内容创建my library/lang/reader.rkt: #lang s-exp syntax/module-reader my-library 然后,将以下内容添加到my library.rkt

Racket 有没有办法在读取时获取有关模块的信息?

从今年夏天起,我就开始在球拍上玩玩具语言。每个表单都有一个固定的arity,默认情况下会应用,因此不需要括号。例如,+具有算术2,因此+3+4 5是(+3(+4 5)),+3+4 5是(+(+3 4)5) 为此,我在主模块中存储符号及其算术。读者不在乎这是一种特殊的形式还是程序,但有没有更好的方法利用racket的特性来实现这一点?因此,我可以导入一个模块元数据并在解析过程中查询它。这里有一种从符号到算术的方法 #lang racket (define base-ns (make-base-n

正在尝试在atom编辑器中运行Dr Racket文件

我下载了atom文本编辑器、Dr Racket语言支持和脚本插件。我正试图运行一个基本的文件,像这样简单的表达式 (+ 3 4) (* (* 4 4) (* 3 3)) 但是,代码编辑器返回一个错误,表示无法识别racket 我试图通过以下路径将Dr Racket添加到我的系统变量中: C:\Program Files\Racket 但是我仍然会抛出错误 也许我放错文件夹了 感谢您的帮助 上面看不到完整路径。用正确的路径编辑了主要问题不要紧,让它正常工作。我想我必须通过命令提示符启动atom

Racket 什么';复杂的球拍合同的目的是什么?

我正在浏览球拍指南,刚刚完成本页: 由此产生的合同如此复杂,我简直不敢相信自己的眼睛: (provide (contract-out [argmax (->i ([f (-> any/c real?)] [lov (and/c pair? list?)]) () (r (f lov) (lambda (r) (cond [(empty? (rest lov)) (eq

Racket For循环,每3个数字打印一次

我试图做一个for循环,循环遍历一个数字列表,并每隔3个数字打印一次 编辑:我只知道如何使用for循环,但我不完全确定是否有一个特定的函数可以用来只显示第三个数字。我觉得在使用car/cdr功能时,我可能走的是正确的道路,但我遇到了一个错误 其余:违反合同 应为:(和/c列表?(不是/c空?) 给定值:0 我的代码: (for/list ([x (in-range 20)] #:when (car(cdr(cdr x)))) (displayln x)) 以下是一个模板: (for ([x (

为什么(require(对于语法';m))在DrRacket中执行所需模块中的表达式3次?

我不知道如何在DrRacket的交互窗口中解释以下行为。我认为输出应该只有一个“hello”,因为在这种情况下模块m应该实例化一次。但实际上,“你好”被打印了三次 > (module m racket (printf "hello\n")) > (module n racket (require (for-syntax 'm))) hello hello hello > 如果我在DrRacket的定义窗口中编写这个示例并运行它,同样的行为也

Racket函数查找列表中与谓词匹配的第一个元素

在Linq(.NET)中,有一个First()方法,它接受一个集合和一个谓词,并返回列表中匹配的第一个元素。例如,下面的 numbers.First(n => n % 2 == 0) (define (first-match f lst) (first (filter f lst))) …返回numbers中的第一个偶数。我想在球拍方面也这么做 我得出了以下结论 numbers.First(n => n % 2 == 0) (define (first-match f ls

Racket:跨模块使用宏

为了教自己在racket中使用更高级的宏,我开始创建一个宏来增加可变结构中的字段: (增量!实例名称字段) => (设置名称字段实例(获取名称字段实例)) 我制作了一个可以工作的宏,并决定在多个模块之间共享它会很有用。不幸的是,由于结构变量不在定义宏的模块的范围内,因此会发生扩展错误 下面是一个人为的例子来说明这个问题。我想知道: 我用惯用的拍子风格写宏代码了吗?这是正确的方法吗 如何控制宏的扩展,使其在原始上下文中找不到标识符的情况下运行 谢谢 #朗格球拍/负载 (球拍模块) (定义语法增

为什么typed/racket似乎坚持让equal散列码返回整数?

我正在尝试将一些普通的racket代码移植到typed/racket(Ubuntu 12.04.5上的6.1)。到目前为止遇到的问题之一是equal hash code返回的类型是Integer,尽管文档声称fixnum?。实际上,fixnum?报告#t的结果是(相等哈希代码#“somebytes”),但类型是整数。因此,当我试图将散列代码存储为键入的Fixnum时,我得到了一个错误。代码 (define: foo : Fixnum (equal-hash-code #"somebytes"))

在Racket中导入Levenshtein包时出错

我想用球拍里的包裹 但是,即使使用“require”命令,我仍然存在以下问题: #lang racket (require levenshtein) >> standard-module-name-resolver: collection not found for module path: levenshtein collection: "levenshtein" in collection directories: /home/pedro/.racket/6

Racket 将球拍测试的输出记录到文件

我正在尝试设置一个服务器,对Racket程序运行广泛的随机测试,并希望将这些测试的输出发送到日志文件中。如何将测试的输出记录到文件中 来自rackunit的测试返回,而不是字符串,因此尝试使用(使用输出文件调用…进行测试只会将添加到输出文件中 (call-with-output-file "testing.txt" (λ (out) (display <TESTS> out)) #:exists 'append) (使用输出文件“testing.txt”调用

Racket 用一系列已知元素填充列表

有没有更快的方法来编写下面的代码 (list var1 var2 var3 var4 var5 ... var100) 基本上,所有元素都是前缀为var的变量。您可以使用宏执行此操作: #lang racket (require syntax/parse/define (for-syntax racket/syntax)) (define-simple-macro (varN-range var:id arg:number ...) #:with [varN ...] (for/lis

Racket 尝试在Windows 7中克隆HN时出错:main:未定义

我已经在我的Windows7机器上下载了Arc3.1和Racket,然后继续。但是当我运行mzscheme-f as.scm时,它始终不会返回提示(好像有一个无限循环)。当我使用mzscheme-m-f as.scm时,它显示 main:未定义或在顶级环境中不需要 而localhost:8080则为空。问题在于Arc使用的是旧版本的Racket。 页面 表示使用MzScheme的372版本 您可以在此处下载版本372: 您也可以在不使用“-m”选项的情况下运行提示符 mzscheme-f as.

Racket 部分函数在球拍中的应用

我正在编写一个函数,将参数部分应用于函数,这样 (define mapeven (partial-apply map even?)) (mapeven (list 1 2 3 4)) ; '(#f #t #f #t) 为此,我必须 (define (partial-apply* func . args) (define (apply-one func arg) (λ args (apply func (cons arg args)))) (foldl (λ (new carry

在PortAudio中向Racket FFI注册回调会导致segfault

我正在尝试为PortAudio编写一个Racket接口。每个音频流具有用于回放的相关回调函数;外国金融机构的文件说我应该能够顺利通过诈骗程序。但是,注册回调的函数似乎会导致分段错误,我认为这是因为我做错了什么。从库标题: //portaudio.h // ... typedef int-PaStreamCallback( 常量无效*输入,无效*输出, 无符号长帧数, const Pastream CallbackTimeInfo*timeInfo, PaStreamCallbackFlags状态

Racket 从归约关系中调用判断

我正在定义一种具有类型转换和子类型化的语言,如下所示: (define-language base (t ::= int any) (e ::= number (cast t e)) #| stuff ... |#) 然后,我对其定义了以下判断形式: (define-judgment-form base #:mode (<: I I) #:contract (<: t t) [------ (<: t t)] [------

Racket 读取和扩展球拍源文件

我需要读取球拍源文件并通过宏扩展运行它。我有一个简单的测试文件,Racket自己很乐意接受: C:\ayane>type factorial.rkt #lang racket (provide factorial) (define (factorial n) (if (<= n 1) 1 (* n (factorial (sub1 n))))) C:\ayane>类型factorial.rkt #朗格球拍 (提供阶乘) (定义(阶乘n) (如果)球拍 欢迎来到Racke

Racket 如何让球拍不打印?

我正在用Racket编写一个程序,我正在用racketfoo.rkt运行这个程序。这是可行的,除了打印程序顶层的每个表达式的结果,即使没有调用打印函数。这就好像程序是逐行输入到REPL的,但在本例中,我根本不尝试使用REPL,我只是尝试从命令行运行程序 如何使Racket不打印内容?#lang Racket,Racket实现中的默认语言,打印顶级语句,除了返回REPL总是忽略的值的(void),以及返回零值的(values),因此REPL无需打印。这意味着您可以创建一个以其中任何一个结尾的mai

使用Racket中的关联属性对括号重新排序

我在实现一个函数时遇到了问题,该函数给出了如下内容: '((+(d + e) + f) + (a + (a + c)) 返回以下内容: '(d + (e + (f + (a + (a + c))))) 现在的问题是我必须使用关联性才能得到答案,所以我只想使用这个属性: '((a + b) + c) = '(a + (b + c)) 以获得正确的输出。我知道如何实现这种情况下的功能: '((a + b) + c) -> '(a + (b + c)) 然而,对于上面的第一个案例(或任何

Racket 球拍:如何防止图像从屏幕上消失而出现在另一面?

我目前正在制作一个游戏,你的角色必须躲避场景内外的物体 我的问题是,当对象离开场景时,它们不会在另一侧重新出现 每个对象都由posn结构表示,每次从左到右有记号时,它们都会在场景中移动一定距离,反之亦然。我已经附上了我认为需要编辑的代码部分 为了清楚起见,世界是一个包含鸡和车的struct,两者都是包含x和y posn的结构 MOVE-CAR是一个常量,设置为(add1(random 49)),它决定了在游戏过程中汽车的移动速度 ;update-world: world -> world

Racket 需要使用项目路径的模块';树根?

我正在制作一个网络应用程序。考虑这样的结构 ProjectName/racket/Servlet.rkt ProjectName/racket/chart/barchart/BarChart.rkt ProjectName/template/barchart.svg 在BarChart.rkt模块中,如何在不使用任何的情况下要求BarChart.svg模板?理想情况下,如果应用程序是从ProjectName(即cd ProjectName;racket-racket/Servlet.rkt)启

用函数、基和列表三个参数在racket中实现reduce过程

我的任务是实现一个reduce过程,该过程使用一个函数,对列表中的每个数字进行相加、相乘或相除。我被论点的基础所束缚。我已经能够检查数字列表并应用作为参数传递的函数。然而,在递归调用中,我不知道如何处理基数。我不希望递归在每次调用中都考虑参数base(base可以是任何数字) 以下是我能够做到的: (define (reduce f base lst) (cond ((empty? lst) base) (else (f (f base (first lst)) (reduc

Racket 带条件语句错误的BMI计算器球拍

我试图在racket中创建一个简单的体重指数计算器,但我找不到使用条件的方法,因为它不起作用。(我是球拍新手) (定义(BMI体重-身高) (/体重(*身高)) [cond((和( 用于创建新的局部变量 只使用一个不同的子句 不用于输出。您可以使用任何其他(打印、写入、显示…)或仅从函数返回字符串 (define (BMI weight height) (/ weight (* height height)) [cond ((and (<= 25)(< 30))(error

定义一个函数来表示教会数字中的整数(DrRacket)

我试图定义一个过程,该过程接受一个整数并返回它在教会数字中的表示形式。谁能帮我找出我犯的错误吗?下面的代码是我到目前为止所能做的 (定义成功) (兰博达(中国) (λ(f) (λ(x) (f(cn f)x(()())) (定义(n->cn n) (如果(=n0) 零 (succ(n->cn(λ(x)(-x1()()))) 当我运行测试时: (test (num->cn 3) three) 我得到以下错误: exception (num->cn 3) at line 107 e

Racket 在另一个应用程序中使用MzCom

我在mzcom附近玩。还有一些问题。 这个模块的状态是什么? 它是否可用于在另一个应用程序(c++)中实现以供认真使用? 当我必须加载包含某些方案代码的文件时,我必须尊重什么? 例如(printf、display、newline)不给我一些值(#) thanx Prevance Ismail如果将来有人偶然发现这个问题,下面是一个邮件列表线程,其中包含更多信息: 它现在由Matthew维护,他最近一直在做这方面的工作。因此,最好询问一下在网络上使用它的情况。

Racket 如何在球拍上打圈?

我想循环这个直到面包的nr为2,怎么做 (when (and (>= money price-of-bread) (< nr-of-bread 2)) (set! nr-of-bread (+ nr-of-bread 1)) (set! money (- money price-of-bread))) (当(和(>=面包的货币价格)(=面包剩余价格)(

如何从Racket中的矩阵中逐行获取元素?

我在做一个简单的Racket程序,输入一个矩阵,然后在文件的一行上写下矩阵的所有元素,我输入的是: (matrix[[1 2][3 4]] 摘要:打印矩阵将所有行追加在一起,以将矩阵折叠为一个列表打印列表在一个列表上打印该列表,列表元素之间留有空格。最后,平面打印矩阵组合了上述两个函数,并将结果引导到文件中。计算(平面打印矩阵'((1 2 3)(4 5 6)(7 8 9))“somefile.txt”)将在当前目录中生成一个名为somefile.txt的文件,其内容如下:1 2 3 4 5 6

Racket 如何使宏与“匹配”一起工作?

我正试图为我使用racket/gui制作的计算器编写一些类似有限状态机的东西,我决定混合使用case和match来实现它。对于特定的状态和符号,我将执行一些任意代码并返回机器的下一个状态。一个简单的例子: (case current-state [(state-1) (match symbol [(? predicate-1?) (some-action) next-state] [(? predicate-2?

在racket中使用图像模块的递归问题

我在第27行有以下错误: first: expects a non-empty list; given: #<image> first:需要一个非空列表;鉴于:# 这是递归的问题吗 我一直在研究,但找不到递归使用图像包的示例 我想不出什么,我不明白为什么它会给我这个错误:( ;您必须制作一个需要n个图形列表的程序,您将绘制这些图形, ;用户指示的所有颜色选项,并按您确定的固定距离分隔。 ;这些数字包含名称(取决于您设置的命名选项), ;根据图形要求的一个或多个测量值,以及是否绘制

用Racket写一个算术表达式

表达式3^2+6*(6-10)/3 需要写一个正确的算术表达式 我试过了 (/(*(+(*3)6(-6 10))3看起来您混淆了运算符的优先级,如果先将表达式插入括号,则更容易 3^2 + 6 * (6 - 10) / 3 (3^2 + ((6 * (6 - 10)) / 3)) (+ (square 3) (/ (* 6 (- 6 10)) 3)) 或者,如果您愿意: (+ (第三方) (* 6. (/ (- 6 10) 3))) 至少有几个问题 两个左括号。这

Racket 编码球拍中的弹跳球

我试图在球拍中创造一个世界,在这个世界上有一个球列表(球是一个具有y坐标、速度和弹性的结构),并创造一个大爆炸,这些球在一个窗口内反弹。当球全部停止反弹(y坐标=0,速度=0)时,模拟将结束 这就是我目前所拥有的 (define-struct Ball ([y : Real] ;; position above ground of the center of ball in metres [v : Real] ;; velocity in m/s [e : Real] ;; be

如何使用xrepl启动Racket?

我经常在bashshell中打开Racket,但是为了让它支持xrepl,我需要首先执行(requirexrepl)命令。 有没有办法启动球拍并自动执行上面的命令 请参见,尤其是下面第一部分的加粗部分: 要使用XREPL,启动racket并输入(需要XREPL)。您将知道,当提示符更改为->时,它会起作用,并且,如果您正在使用一个有能力的终端,您现在将具有readline编辑功能。您还可以启动racket并使用命令行参数请求加载XREPL: 球拍-il xrepl 如果要自动启用XREPL,请将

Racket 前n个奇数的平方和的递归过程?

我试图实现球拍上前n个奇数的平方和的递归过程 (从1开始) e、 (平方和递归0)为0 (和1)是1(1^2) (和2)是10(3^2+1^2) (平方和递归3)是35(5^2+3^2+1^2)这是一个使用线性迭代过程的递归过程 (define (sum-alt-squares-recursive x (y 1) (z 0)) (if (zero? x) z ; if x is zero, return

未能在Racket 6.6中注册MzCOM.exe,什么';原因是什么?

我尝试使用MzCOM,但未在我的系统上成功注册。尝试运行“C:\\Program Files\\Racket\\lib\\MzCOM.exe”/RegServer/v(我在该目录中安装了Racket),但收到一个错误消息框“注册失败”,表示访问被拒绝。然后作为管理员运行它,但我没有得到任何输出,MzCOM仍然没有注册。 附带说明:在Visual Studio 2015中使用Windows10

Racket 将符号列表转换为宏中使用的标识符列表

考虑这样一个场景,我想使用Racket宏指定一个非常简单的actor语言。参与者由一种行为定义,该行为定义了一些本地状态和实现某些逻辑的消息处理程序。消息处理程序的主体既可以使用消息的形式参数,也可以使用状态变量。下面的代码实现了一个示例 代码中有相当多的上下文,这可能甚至不是必需的。但是,为了提供一个运行的示例,我将其包括在内,而且我需要使用语法参数化这一事实可能会使解决方案复杂化。特别需要注意的是消息宏中的with syntax子句,其中我需要(局部状态变量…模式匹配标识符列表,当前为#'局

Racket 变量定义和函数定义的根本区别

我正在通过《球拍王国》一书学习球拍。我注意到定义变量和定义函数是通过相同的关键字来完成的-define。这让我思考了不带参数且仅返回值5的函数与返回值5的变量之间的根本区别。i、 e: (define fiveVar 5) (define (fiveFun) 5) (如果camel case不是正确的命名约定,则表示歉意-只是拿起书,不知道任何Lisp) 乍一看,在这两种情况下,我似乎只是给值5起了个名字。事实上,我甚至可以重新附加名称fiveFun:(set fiveFun 6),就像

Racket 如何将C字符数组直接转换为字节

如果定义了\u名称,则我使用c字符串样式: (define-cstruct _ifreq ([ifr_name (_array _byte IFNAMSIZE)] ;; ommited ... )) 我可以通过(array->ref)和递归从中创建列表来访问单个元素。然后使用(list->bytes)获取lisp数据结构。我很好奇是否有一种更简单的方法不需要创建列表 Racket为这种场合提供了可变字节字符串 (r

Racket SICP练习1.11的球拍错误

球拍的翻译给了我错误 在我尝试实现递归 练习1.11的功能: #lang sicp (define (f n) (cond ((< n 3) n) (else (+ f((- n 1)) (* 2 f((- n 2))) (* 3 f((- n 3))))))) (f 2) (f 5) /Users/tanveersalim/Desktop/Git/EPI/EPI/Functional/SIC

Racket 如何将图形对象列表映射到符号集合?使用`(定义值)`?

我试图通过遵循“Racket王国”中的代码示例来学习Racket。目前在第8章,我决定重构一些重复的代码来帮助自己更快地学习。具体地说,我正在尝试将游戏图形列表分配给一组符号,但我一直遇到错误 这是原始的orc world.rkt源文件。代码运行良好 (需要2htdp/image) ;; 计算图像帧的常数 (定义ORC(位图“graphics/ORC.png”)) (定义HYDRA(位图“graphics/HYDRA.png”)) (定义SLIME(位图“graphics/SLIME.bmp”)

Racket 使用递归的球拍列表错误

我正在尝试使用Racket中的列表来完成一个学校问题。使用递归是一个简单的问题,但我无法理解为什么我的代码不能工作。我们应该搜索列表,如果提供的项与列表中的项匹配,则返回true。这就是我到目前为止所做的: (define (containsAnywhere test list) (cond ((null? list) '()) (equal?((car list) test)) (else(containsAnywhere (test (cdr list))))

如何通过给出命令行argumands从终端调用racket过程

我有一个叫foo.rkt的拍子文件,在这个文件里我有一个叫textify的程序,它需要两个参数。现在我如何从终端调用这个过程?我想做的只是: > racket foo.rkt myfirstarg mysecondarg 然后我希望这个调用激活(textify myfirstarg mysecondarg)过程。这可能吗 以下是foo.rkt的内容: #lang racket (require wxme) (provide (contract-out [textify

上一页   1   2   3    4   5   6  ... 下一页 最后一页 共 25 页