惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Cyberwarzone
Cyberwarzone
The GitHub Blog
The GitHub Blog
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
小众软件
小众软件
Recent Announcements
Recent Announcements
博客园 - 三生石上(FineUI控件)
Security Archives - TechRepublic
Security Archives - TechRepublic
W
WeLiveSecurity
Cloudbric
Cloudbric
博客园 - 司徒正美
美团技术团队
N
News and Events Feed by Topic
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
PCI Perspectives
PCI Perspectives
宝玉的分享
宝玉的分享
H
Help Net Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google DeepMind News
Google DeepMind News
Help Net Security
Help Net Security
Last Week in AI
Last Week in AI
S
Schneier on Security
N
News | PayPal Newsroom
B
Blog RSS Feed
L
LINUX DO - 最新话题
T
Troy Hunt's Blog
S
Secure Thoughts
雷峰网
雷峰网
aimingoo的专栏
aimingoo的专栏
L
Lohrmann on Cybersecurity
G
Google Developers Blog
Microsoft Azure Blog
Microsoft Azure Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
Tenable Blog
S
Securelist
L
LangChain Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
I
InfoQ
H
Heimdal Security Blog
Cisco Talos Blog
Cisco Talos Blog
F
Full Disclosure
Y
Y Combinator Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
K
Kaspersky official blog
T
Tailwind CSS Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
阮一峰的网络日志
阮一峰的网络日志
C
Cisco Blogs

Kaffa.im

Kaffa.im - 寻找数据源头 Kaffa.im - 玩魔方 Kaffa.im - AI 在常见病上取代医生 Kaffa.im - 上 NextCloud,一站搞定个人数据同步 在 Windows 上 Bose SoundLink 音箱声音自动停止问题的解决 Kaffa.im - 交易的实质——浪随风向 Kaffa.im - 新手学电脑从入门到精通 Kaffa.im - 数字化转型之路(从数字化到数智化) Kaffa.im - 机器人简史 Kaffa.im - 安卓Frida逆向与协议分析 Kaffa.im - 数学的惊奇 Kaffa.im - 牌局心理学 Kaffa.im - Python计算机视觉实战 Kaffa.im - ALaunch v1.0 发布 Kaffa.im - Windows 音频设备控制之旅 Kaffa.im - 结构性优势 Kaffa.im - 尤瓦尔·赫拉利-真假信息与连接 Kaffa.im - 小狗钱钱 Kaffa.im - 短视频编导全能手 Kaffa.im - 爆品创新:新时代爆品打造法 Kaffa.im - 如何阅读一本书 Kaffa.im - 冰血暴第一季 Kaffa.im - 冰血暴第二季 Kaffa.im - 冰血暴第三季 Kaffa.im - 冰血暴第四季 Kaffa.im - 冰血暴第五季 Kaffa.im - 思维迭代的26个卓越方法 Kaffa.im - 再度唤醒世界:赖特诗选 Kaffa.im - 中国量化投资 Kaffa.im - Clojure Recipes Kaffa.im - 文案卖货 Kaffa.im - 印象派与东亚美术 Kaffa.im - 深入实战vue开发 Kaffa.im - 我们为什么爱喝酒 Kaffa.im - 雅余的自省《独立博客自省问卷15题》 Kaffa.im - 2024年第41-42周周报 莫名解决局域网内 macOS 与 Windows 不能互访的问题 Kaffa.im - 2024年第39-40周周报 Kaffa.im - 2024年第37-38周周报 Kaffa.im - Money Focused Freestyle 给网站增加了 DIŸgöd 的 follow(Description 方式) Kaffa.im - 给网站增加了 DIŸgöd 的 follow Kaffa.im - 2024年第35-36周周报 Kaffa.im - 记录盒马鲜生好吃的烘培和好喝的啤酒 Kaffa.im - 边水往事 Kaffa.im - 事件流实战 Kaffa.im - 神经漫游者 Kaffa.im - 重启蒙娜丽莎 Kaffa.im - 零伯爵 Kaffa.im - TypeScript编程 Kaffa.im - 唯有书籍——读书、藏书及与书有关的一切 Kaffa.im - 福佳白啤 Kaffa.im - 2024年第33-34周周报 Kaffa.im - 安全意识、记一次MySQL勒索 Kaffa.im - 2024年第31-32周周报 Kaffa.im - 关于遗产代码维护 Kaffa.im - Rust项目开发实战 Kaffa.im - 抖音盒子:短视频与直播带货从入门到精通 Kaffa.im - 浮华与金戈(中世纪上) Kaffa.im - Rust系统编程 Kaffa.im - 大话机器智能 Kaffa.im - 为什么伟大不能被计划——对创意、创新和创造的自由探索 Kaffa.im - 电解质水平替、该不该喝酒及智商堪忧 Kaffa.im - AI融入生活的两点想法 Kaffa.im - 2024年第29-30周周报 Kaffa.im - 《黑客与画家》中累加器引发的思考 Kaffa.im - 2024年第27-28周周报 Kaffa.im - 别丧了,一点也不酷 Kaffa.im - 心智的本质 Kaffa.im - 宽客人生 Kaffa.im - 工作一年拉开差距:问题解决 Kaffa.im - 工作一年拉开差距:逻辑思考 Kaffa.im - Svelte和Sapper实战 Kaffa.im - The Digital Factory Kaffa.im - 游世与自然生活——庄子评传 Kaffa.im - 工作的原理·发现问题篇 Kaffa.im - 工作的原理·解决问题篇 Kaffa.im - DB Service Kaffa.im - 2024年第26周周报 Kaffa.im - 「KN.phoenix」终极笔记软件需求 Kaffa.im - ALaunch v0.9 发布 当我们 Build in Public 时,我们谈些什么 Kaffa.im - 2024年第25周周报 Kaffa.im - 给网站增加最近评论功能 Kaffa.im - 2024年第24周周报 Kaffa.im - [翻译]此网站是个人的 Kaffa.im - [翻译]制作自己的独立网站 Kaffa.im - [翻译]制作自己的独立网站 Kaffa.im - 2024年第23周周报 清除 Microsoft Edge 自动跳转 https 的缓存 参加 AWS 讲 AIGC 活动 Kaffa.im - 2024年第22周周报 Kaffa.im - 2024年第21周周报 Kaffa.im - 2024年第20周周报 Kaffa.im - 营销管理 Kaffa.im - 所有旅生,AI的一图定位来了 Kaffa.im - 2024年第19周周报 Kaffa.im - 2024年第18周周报 Kaffa.im - 年轻只是爱构建
Racket Programming the Fun Way
Kaffa · 2024-10-28 · via Kaffa.im

Racket Programming the Fun Way
From Strings to Turing Machines

作者:James W. Stelly

An introduction to the Racket functional programming language and DrRacket development environment to explore topics in mathematics (mostly recreational) and computer science. At last, a lively guided tour through all the features, functions, and applications of the Racket programming language. You'll learn a variety of coding paradigms, including iterative, object oriented, and logic programming; create interactive graphics, draw diagrams, and solve puzzles as you explore Racket through fun computer science topics--from statistical analysis to search algorithms, the Turing machine, and more. Early chapters cover basic Racket concepts like data types, syntax, variables, strings, and formatted output. You'll learn how to perform math in Racket's rich numerical environment, and use programming constructs in different problem domains (like coding solutions to the Tower of Hanoi puzzle). Later, you'll play with plotting, grapple with graphics, and visualize data. Then, you'll escape the confines of the command line to produce animations, interactive games, and a card trick program that'll dazzle your friends. You'll learn how to: • Use DrRacket, an interactive development environment (IDE) for writing programs • Compute classical math problems, like the Fibonacci sequence • Generate two-dimensional function plots and create drawings using graphics primitives • Import and export data to and from Racket using ports, then visually analyze it • Build simple computing devices (pushdown automaton, Turing machine, and so on) that perform tasks • Leverage Racket's built-in libraries to develop a command line algebraic calculator Racket Programming the Fun Way is just like the language itself--an embodiment of everything that makes programming interesting and worthwhile, and that makes you a better programmer.

ISBN 9781718500822
出版社 No Starch Press
出版时间 2021年 1月
装帧 Paperback
页数 360

说明

Racket 的优势是,将 lisp + 常用数据类型 + 绘图 + GUI,因此可以很方便做出很多 2D 图形游戏。

适合作为讲述通用编程思想的语言。

在实战中,lisp 的表达能力确实强于 python、js,但 Python 视觉上更简洁,少了许多视觉障碍,而 Js 也可能是最开始学的 C 教学的缘故,大家也习惯大括号。

主要内容:讲解了 lisp 基础,比如

  • 原子类型 Atomic Data,number 和 strings
  • Lists
  • S-Expressions
  • List Functions
    • length
    • reverse
    • sort
    • append
    • range
    • make-list
    • null?
    • index-of
    • member
  • Defines, Assigns and Variables
  • Symbols, Identifiers and Keywords
  • Equality
  • Strings, Things
  • String Functions
    • string-length
    • substring
    • string-titlecase
    • string-upcase
    • string-downcase
    • string<=?
    • string=?
    • string-replace
    • string-contains?
    • string-split
    • string-trim
  • String Conversion and Formatting Functions
  • Vectors
  • Struct
  • Controlling output
    • write
    • display
    • print
  • Arithmetic
    • Booleans
    • Integers
    • Rationals
    • Reals
    • Complex Numbers
  • Numeric Comparison
  • Built-in Functions
    • abs
    • ceiling
    • floor
    • tan
    • atan
    • cos
    • sqrt
    • srq
    • log
    • exp
    • expt
  • Function
  • 绘图
  • GUI
  • 算法

很多 Python 书也是这种思路了。

本书的最大特点就和 Racket 一样,非常学术,实现了扑克牌游戏、A* 算法、Dijkstra 算法、八皇后问题、数独,甚至还有我喜欢的 15-Puzzle,也是用 A* 搞定的。

Racket 画个黄金螺线,那是最擅长的

Racket 就像一个老教授或一个顶级 Geek 一样,可以实现一切算法。但将 Racket 用到 Real world 中,会遇到现实粗砺的坑,现实会用人性打败他,会用数据量打败它,会用缺少必要中间件、分布式组件打败它,让 Racket 呆在它的教学领域是最好的选择。

精通的 Racket,能很快适应现代语言的基础特性,毕竟编程语言的爷爷在这里,比如新语言中出现 match 等,而反过来就不成立。