DrRacket是一款专为Scheme和Racket编程语言设计的集成开发环境(IDE)

DrRacket是一款专为Scheme和Racket编程语言设计的集成开发环境(IDE),由瑞士苏黎世联邦理工学院开发。它不仅是初学者学习编程的理想工具,也适用于专业级开发‌。

安装DrRacket

请访问https://download.racket-lang.org安装Racket,并确保安装时勾选'Add to PATH'选项

下载软件:https://download.racket-lang.org/

选择适合自己平台的安装包,比如windows10选择:racket-8.16-x86_64-win32-cs.exe

也可以选择镜像网址下载:Racket: Download Racket v8.16 for Windows (x64, 64-bit)

双休日下载太慢了。好消息是工作日下载很快!

下载后进行安装,如果有以前的版本,会先删除老版本再安装新版本。

配置运行

启动

启动DrRacket,启动显示:

欢迎使用 DrRacket, 版本 8.16 [cs].
语言: 还没有选择语言; memory limit: 128 MB.
在继续操作之前,你必须为DrRacket选择一种编程语言。
请使用“语言”菜单中的“选择语言…”对话框,或者由DrRacket帮助你选择。

DrRacket支持多种编程语言,包括Racket本身(一种Scheme方言)以及其他教学语言和自定义语言。用户可以根据自己的需求选择合适的编程语言。

提供了不同难度的编程教学选项

语言先选择Racket吧,其它的,比如教学语言,还不会。

> (+ 2 2)
4
> 

使用官网首页的例子

#lang racket/gui(define my-language 'English)(define translations#hash([Chinese . "你好 世界"][English . "Hello world"][French . "Bonjour le monde"][German . "Hallo Welt"][Greek . "Γειά σου, κόσμε"][Portuguese . "Olá mundo"][Spanish . "Hola mundo"][Thai . "สวัสดีชาวโลก"][Turkish . "Merhaba Dünya"]))(define my-hello-world(hash-ref translations my-language"hello world"))(message-box "" my-hello-world)

运行这个例子,会弹出一个Hello world的GUI对话框。 

 

处理图像

选择加载图像包image.rkt:

然后输入 (image-width )

会得到输出28 ,也就是这个图像的宽度是28 

画个矩形

(rectangle 30 20 "outline" "blue")

image

将Racket放入系统路径

如果安装的时候没有顺便把Racket放入系统路径,可以手工添加,找到电脑-属性,设置-高级系统设置,环境变量,添加Racket所在的目录,比如:"e:\Program Files\Racket"

这时候执行raco,能看到命令提示,证明路径设置正确

raco工具

raco‌是Racket提供的一个基于字符界面的命令行执行工具,用于执行Racket命令集,如安装系统组件功能包、创建函数库等‌  

raco pkg install <package-name>:安装一个新的包‌

raco pkg show:查看已安装包的列表‌

比如查看当前的安装包,输出:
$ raco pkg show
Installation-wide:
 Package            Checksum             Source
 main-distribution  4a56b11e5516feb7...  catalog...1b9631600 
 racket-lib         84eb4b8cfd30fe9a...  catalog racket-lib  
 [211 auto-installed packages not shown]
User-specific for installation "8.16":
 [none]

如何设计程序语言

DrRacket用于学习程序语言和设计程序语言,如何设计程序手册:How to Design Programs

如何设计程序,第二版:How to Design Programs, Second Edition

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/898874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

走进底层-Java中的IO流

Java中IO流 在Java编程中&#xff0c;IO流&#xff08;Input/Output Stream&#xff09;是非常重要的概念&#xff0c;它为程序的输入和输出操作提供了一套强大而灵活的机制。本文将详细介绍Java中IO流的相关内容&#xff0c;包括其基本概念、分类以及常见类的使用示例。 一、…

【Tiny RDM】Redis客户端工具

Tiny RDM Tiny RDM是一款现代化、轻量级、跨平台的Redis客户端&#xff0c;支持Mac、Windows和Linux&#xff0c;目前在Github上已有10kStar。 Github 项目地址&#xff1a; https://github.com/tiny-craft/tiny-rdm 功能特性 极度轻量&#xff0c;基于Webview2&#xff0c…

ctfshow REVERSE re2 萌新赛 内部赛 七夕杯 WP

目录 re2 萌新赛 flag白给 签退 数学不及格 内部赛 批量生产的伪劣产品 来一个派森 好好学习 天天向上 屏幕裂开了 七夕杯 逆向签到 easy_magic re2 ida分析主函数&#xff0c;将flag.txt内容加密写入enflag.txt 这是密钥加密过程 标准rc4加密 简单异或解…

【Linux】线程库

一、线程库管理 tid其实是一个地址 void* start(void* args) {const char* name (const char *)args;while(true){printf("我是新线程 %s &#xff0c;我的地址&#xff1a;0x%lx\n",name,pthread_self());sleep(1);}return nullptr; }int main() {pthread_t tid…

深入剖析 Android Compose 框架的自动动画:AnimatedVisibility 与 AnimatedContent(二十四)

深入剖析 Android Compose 框架的自动动画&#xff1a;AnimatedVisibility 与 AnimatedContent 引言 在 Android 应用开发中&#xff0c;动画是提升用户体验的重要手段。它能够让界面元素的显示与隐藏、状态的切换变得更加自然和流畅&#xff0c;避免生硬的变化给用户带来不佳…

文件上传的小点总结(1)

2.文件类型绕过 问题插入&#xff1a;BP无法拦截本地流量 ①插件限制 不代理的地址列表通常写有localhost和127.0.0.1&#xff0c;把本地的全都删掉&#xff0c;然后应用保存。 ②浏览器限制 Firefox浏览器设置&#xff1a;检查浏览器代理配置和proxy listeners都没问题后&…

AI基础01-文本数据采集

本篇文章是学习文本数据的采集&#xff0c;作为人工智能训练师或者数据分析师有时需要先获取数据&#xff0c;然后进行数据清洗、数据标注。很明显数据采集是后续步骤的基础。 1&#xff09;数据采集定义 数据采集&#xff1a;data acquisition&#xff0c;DAQ 又称为数据获取…

深度学习Python编程:从入门到工程实践

第一章 Python语言概述与生态体系 1.3 Python在工业界的应用场景 # 示例:使用FastAPI构建RESTful接口 from fastapi import FastAPI from pydantic import BaseModelapp = FastAPI()class Item(BaseModel):name: strprice: float@app.post("/items/") async def cr…

使用CSS3实现炫酷的3D翻转卡片效果

使用CSS3实现炫酷的3D翻转卡片效果 这里写目录标题 使用CSS3实现炫酷的3D翻转卡片效果项目介绍技术要点分析1. 3D空间设置2. 核心CSS属性3. 布局和定位 实现难点和解决方案1. 3D效果的流畅性2. 卡片内容布局3. 响应式设计 性能优化建议浏览器兼容性总结 项目介绍 在这个项目中…

HAl库开发中断方式接收Can报文的详细流程

下面给出一个基于 HAL 库的中断方式接收 CAN 报文的详细流程说明&#xff0c;描述每一步的硬件配置、软件调用和中断处理机制&#xff0c;而不涉及具体代码细节&#xff0c;只讲解整体原理和步骤&#xff1a; 在使用 HAL 库时&#xff0c;不需要手动清除中断标志位。原因如下&…

【读书笔记】华为《从偶然到必然》

note 华为的成功并非偶然&#xff0c;而是通过IPD体系、投资组合管理、平台战略等系统性工具&#xff0c;将研发投资转化为可持续的商业竞争力。书中强调的“管理即内部因素”理念&#xff0c;揭示了企业规模扩张与管理能力匹配的深层规律&#xff0c;为高科技企业提供了可借鉴…

6.4考研408数据结构图论核心知识点深度解析

一、最小生成树(Minimum Spanning Tree) 1.1 Prim算法 易错点与难点 lowcost数组更新逻辑 错误将已加入生成树的顶点距离重置为0后继续参与计算,导致后续顶点选择错误未正确处理非连通图情况,可能陷入死循环(需结合visited数组判断)示例错误:for(int j=0; j<G.vexn…

HashMap添加元素的流程图

文章目录 JDK7 vs JDK8 的 HashMap 结构变化Java8 中哈希表的红黑树优化机制HashMap 添加元素的完整流程解析1. 计算 key 的哈希值并确定索引2. 检查该索引位置是否已有元素3. 处理哈希冲突4. 判断当前存储结构&#xff08;链表还是红黑树&#xff09;5. 判断链表长度是否超过 …

Excel(进阶篇):powerquery详解、PowerQuery的各种用法,逆透视表格、双行表头如何制作透视表、不规则数据如何制作数据透视表

目录 PowerQuery工具基础修改现有数据理规则PowerQuery抓取数据的两种方式多文件合并透视不同表结构多表追加数据透视追加与合并整理横向表格:逆透视 数据用拆分工具整理数据算账龄 不等步长值组合合并文件夹中所有文件PowerQuery处理CSV文件双行表头、带合并单元格如何做数据…

从零开始:使用 Cython + JNI 在 Android 上运行 Python 算法

1. 引言 在 Android 设备上运行 Python 代码通常面临性能、兼容性和封装等挑战。尤其是当你希望在 Android 应用中使用 Python 编写的计算密集型算法时&#xff0c;直接运行 Python 代码可能导致较高的 CPU 占用和较差的性能。为了解决这个问题&#xff0c;我们可以使用 Cytho…

请为下面的html添加一个修改按钮,以便对书名、价格进行修改

下面的HTML段落&#xff0c;在书名和价格输入错误的情况下&#xff0c;无法进行修改。添加一个按钮&#xff0c;对已经输入的信息进行修改。 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title></…

FFmpeg + ‌Qt‌ 简单视频播放器代码

一个基于 ‌FFmpeg 4.x‌ 和 ‌Qt‌ 的简单视频播放器代码示例&#xff0c;实现视频解码和渲染到 Qt 窗口的功能。 1&#xff09;ffmpeg库界面&#xff0c;视频解码支持软解和硬解方式。 2&#xff09;QImage/QPixmap显示视频图片。 ‌1. Qt 项目配置&#xff08;.pro 文件&…

如何在百度搜索上删除与自己名字相关的资料

个人信息的网络足迹如同一张无形的网&#xff0c;将我们与世界的每一个角落紧密相连。然而&#xff0c;当某些与自己名字相关的资料不再希望被公众轻易检索到时&#xff0c;如何在百度搜索中有效“隐身”&#xff0c;成为了一个亟待解决的问题。面对复杂多变的网络环境&#xf…

WebSocket:现代实时通信协议的深度解析与实践

一、背景与演进历程 1.1 传统实时通信的困境 // 典型的HTTP轮询伪代码 while(true) {auto response http_client.get("/messages");if(response.has_data()) process(response);std::this_thread::sleep_for(1s); // 固定间隔轮询 } 高延迟&#xff1a;轮询间隔导…

[贪心算法]最长回文串 增减字符串匹配 分发饼干

1.最长回文串 我们可以存下每个字母的个数&#xff0c;然后分类讨论 如果是奇数就减一加到结果中如果是偶数就直接加入即可 最后判断长度跟原字符串的差距&#xff0c;如果小于原数组说明有奇数结果1 class Solution { public:int longestPalindrome(string s) {int ret0;//1.计…