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.pswp.cn/news/898874.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/898874.shtml
英文地址,請注明出處:http://en.pswp.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.計…