当前位置: 首页 > article >正文

通过Racket 运行arc这个新型的lisp语言

也许arc这个编程语言无法成为100年后的编程语言,但至少它能达到100年后基本上还能用的地步...

1. Install Racket from http://racket-lang.org.

2. Get http://www.arclanguage.org/arc3.2.tar and untar it.

3. Type racket -f as.scm and you should get an Arc prompt.

4. If you have questions or suggestions, post them on the forum.

使用arc源码的方法1

首先下载并解压

wget http://www.arclanguage.org/arc3.2.tar
tar -xvf arc3.2.tar

文件只有270KB,非常小巧 

创建目录和文件

cd arc3.1

mkdir arc

echo "myname" > arc/admins

安装racket

sudo apt install racket

依赖的库还是挺大的,


Need to get 163 MB of archives.
After this operation, 702 MB of additional disk space will be used.
 

启动arc

racket  -f as.scm
Use (quit) to quit, (tl) to return here after an interrupt.

打开个web服务器吧

(load "news.arc")

(nsv)

不要忘记执行下面的(nsv),我就是忘记执行了,一开始服务器就没有开。

执行之后,输出
ready to serve port 8080

而且这个已经是绑定在0.0.0.0 上的,所以可以远程登录。

使用anarki源码的方法2

参考:Arc Programming Language

首先安装依赖库git和racket

sudo apt install git racket

通过racket安装和执行Arc

raco pkg install sha
git clone http://github.com/arclanguage/anarki
cd anarki
./arc.sh

这里raco pkg install sha碰到了问题,那么就不装。

直接进入Arc交互界面

./arc.sh

 让我们输入一些Arc基本语法指令看看吧:

 ./arc.sh
Use (quit) or ^D to quit, (tl) to return here after an interrupt.
arc> 25
25
arc> "foo"
"foo"
arc> (+ 1 2 )
3
arc> (+ (+ 1 2) (+ 3 (+ 4 5) ) )
15
arc> (= foo 13)
13
arc> 'foo
foo
arc> `foo
foo
arc> '(+ 1 2)
(+ 1 2)
arc> (cons 'f '(a b))
(f a b)

其它

Arc的特点

Arc减少了括号的数量,并具有一些花哨的内置语法,以使常见的代码更短。例如:

;; scheme
(if p1 c1
    (if p2 c2
        (if p3 c3 a3)))

;; arc simplifies if
(if p1 c1
    p2 c2
    p3 c3
       a3)

;; scheme
(f1(f2(f3 a b)))

;; arc simplifies cascading calls
(f1:f2:f3 a b)

参考:Arc相对于Racket的优势 lisp arc-lisp - Dev59

Racket 解决问题 · 创造语言

同时了解了Racket 这门语言

Racket

安装参考这里:在FreeBSD、Windows、Ubuntu24三种平台下安装Racket-CSDN博客

调试

raco pkg install sha报错Connection reset by peer; errno=104

 raco pkg install sha
Resolving "sha" via https://download.racket-lang.org/releases/8.10/catalog/
error reading from stream port
  system error: Connection reset by peer; errno=104
  context...:
   /usr/share/racket/collects/openssl/mzssl.rkt:953:0: pump-input-once
   /usr/share/racket/collects/openssl/mzssl.rkt:1416:0: wrap-ports
   /usr/share/racket/collects/racket/contract/private/arrow-val-first.rkt:555:3
   /usr/share/racket/collects/net/http-client.rkt:67:0: http-conn-open!
   /usr/share/racket/collects/net/http-client.rkt:274:0: http-conn-open
   /usr/share/racket/collects/racket/contract/private/arrow-val-first.rkt:555:3
   /usr/share/racket/collects/net/url.rkt:202:0: http://getpost-impure-port
   /usr/share/racket/collects/net/url.rkt:305:0: get-pure-port/headers
   /usr/share/racket/collects/racket/contract/private/arrow-val-first.rkt:555:3
   /usr/share/racket/collects/pkg/private/network.rkt:59:3
   /usr/share/racket/collects/pkg/private/catalog.rkt:218:0: read-from-server
   /usr/share/racket/collects/pkg/private/catalog.rkt:135:2: lookup-normally
   /usr/share/racket/collects/pkg/private/prefetch.rkt:129:4
   /usr/share/racket/collects/pkg/private/prefetch.rkt:128:2
   /usr/share/racket/collects/pkg/private/catalog.rkt:132:0: package-catalog-lookup
   /usr/share/racket/collects/pkg/private/catalog.rkt:200:0: package-catalog-lookup-source

后来在FreeBSD测试,也是报错。

在Windows下,能安装上sha。Windows下的版本是最新版,不知道是不是版本问题。

 执行.arc.sh提示Please install rlwrap with your OS's package manager

./arc.sh
Please install rlwrap with your OS's package manager (apt-get, dpkg, rpm, yum, pacman, etc.)
Or run arc without rlwrap: "./arc.sh -n"

按照提示,要么安装rlwrap,

sudo apt install rlwrap

要么直接执行"./arc.sh -n"

还是老老实实的安装了rlwarp


http://www.kler.cn/a/599287.html

相关文章:

  • 量子边缘计算:当Wasm遇见量子退火机——解锁组合优化问题的终极加速方案
  • VSCode相关文件折叠展开
  • Qt 高效读写JSON文件,玩转QJsonDocument与QJsonObject
  • Chrome Performance 面板完全指南:从卡顿到丝滑的终极调试术
  • 44、如何在 O(n) 时间复杂度内构建一个堆?
  • 为什么vector扩容会导致迭代器失效
  • jangow靶机攻略
  • Jenkins 集成 SonarQube 代码静态检查使用说明
  • 内网(域)渗透测试流程和模拟测试day--2--漏洞利用getshell
  • 同一个局域网的话 如何访问另一台电脑的ip
  • 检波、限幅、钳位电路
  • 【深度学习】【目标检测】【OnnxRuntime】【C++】YOLOV3模型部署
  • 模版的特化引发的权限扩大的解决方法
  • 基于51单片机的双机通信温度检测报警系统的仿真设计
  • 腾讯云大模型知识引擎×DeepSeek | 企业应用快速接入手册
  • LVS-DR模式配置脚本
  • 5.4 位运算专题:LeetCode 137. 只出现一次的数字 II
  • 模糊推理规则生成方法详解
  • CentOS8 安装 Docker-CE
  • FPGA中串行执行方式之流水线(Pipeline)