• Stars
    star
    404
  • Rank 106,897 (Top 3 %)
  • Language
    Rust
  • License
    Creative Commons ...
  • Created almost 4 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

十分钟魔法练习 in Rust

十分钟魔法练习 (Rust)

改写自 十分钟魔法练习-玩火 原版为 Java 实现

另有 C++版-图斯卡蓝瑟 | C#版-CWKSC

抽象与组合

希望能在十分钟内教会你一样魔法

QQ群:1070975853 | Telegram Group

目录中方括号里的是前置技能。

测试所有用例

$ cargo test

MSRV: Nightly

类型系统

偏易|代数数据类型(Algebraic Data Type)[Rust 基础]

偏易|广义代数数据类型(Generalized Algebriac Data Type)[Rust 基础,ADT]

偏易|余代数数据类型(Coalgebraic Data Type)[Rust 基础,ADT]

偏易|单位半群(Monoid)[Rust 基础]

较难|高阶类型(Higher Kinded Type)[Rust 基础]

中等|单子(Monad)[Rust 基础,HKT]

较难|状态单子(State Monad)[Rust 基础,HKT,Monad]

[中等|简单类型 λ 演算(Simply-Typed Lambda Calculus)[Java 基础,ADT,λ 演算]](doc/STLC.md)

[中等|系统 F(System F)[Java 基础,ADT,简单类型 λ 演算]](doc/SystemF.md)

[中等|系统 Fω(System Fω)[Java 基础,ADT,系统 F]](doc/SysFO.md)

[较难|构造演算(Calculus of Construction)[Java 基础,ADT,系统 Fω]](doc/CoC.md)

[偏易|π 类型和 Σ 类型(Pi type & Sigma type)[ADT,构造演算]](doc/PiSigma.md)

计算理论

[较难|λ演算(Lambda Calculus)[Java基础,ADT]](doc/Lambda.md)

[偏易|求值策略(Evaluation Strategy)[Java基础,λ演算]](doc/EvalStrategy.md)

较难|丘奇编码(Church Encoding)[λ 演算]

[很难|斯科特编码(Scott Encoding)[构造演算,ADT,μ](doc/ScottE.md)

[中等|Y 组合子(Y Combinator)[Java 基础,λ 演算,λ 演算编码]](doc/YCombinator.md)

[中等|μ(Mu)[Java 基础,构造演算, Y 组合子]](doc/Mu.md)

[中等|向量和有限集(Vector & FinSet)[构造演算, ADT ,依赖类型模式匹配]](doc/VecFin.md)

形式化验证

偏易|Curry-Howard 同构(Curry-Howard Isomorphism)[构造演算]

编程范式

简单|表驱动编程(Table-Driven Programming)[简单 Rust 基础]

简单|续延(Continuation)[简单 Rust 基础]

中等|代数作用(Algebraic Effect)[简单 Rust 基础,续延]

[中等|依赖注入(Dependency Injection)[Java基础,Monad,代数作用]](doc/DepsInj.md)

中等|提升(Lifting)[Rust 基础,HKT,Monad]

编译原理

[较难|解析器单子(Parser Monad)[Java基础,HKT,Monad]](doc/ParserM.md)

[中等|解析器组合子(Parser Combinator)[Java基础,HKT,Monad]](doc/Parsec.md)

More Repositories

1

tmexclude

Exclude undesired files (node_modules, target, etc) from your TimeMachine backup.
TypeScript
209
star
2

shuiyuan-archiver

一个将上海交通大学水源社区的文章存档的工具
Rust
57
star
3

pysjtu

The Python iSJTU client for Humans.
HTML
38
star
4

jaccount-captcha-solver

High accuracy captcha solver for SJTU Jaccount login page using SVM and ResNet.
Python
29
star
5

bililive-rs

A simple stream-based bilibili live client library.
Rust
17
star
6

hithit_bot

打打 bot
Rust
14
star
7

archer

A repository builder for ArchLinux
Rust
13
star
8

landingpage

TypeScript
11
star
9

l-lang-parser-rs

A parser for a toy strict untyped λ-calculus language called L-lang.
Rust
7
star
10

stars

Rust
7
star
11

BrownSense

🚽 A distributed IoT platform for monitoring and improving toilet's indoor air quality.
Vue
7
star
12

jaccount-captcha-solver-webextension

A browser extension that solves jAccount captcha automatically.
JavaScript
7
star
13

fsevent-stream

Stream-based FSEvents API bindings.
Rust
7
star
14

ciya-rs

Ciyaify your image
Rust
6
star
15

axum-xml

XML extractor for axum
Rust
6
star
16

im-bridging-rs

Rust
5
star
17

blog

Personal blog.
5
star
18

baka-notes

Personal reading notes (zh-CN)
Typst
5
star
19

sjtu-schedule-exporter-cli

A simple utility to export your SJTU schedule in ICS format.
Python
4
star
20

SimPL

SimPL is a simplified dialect of ML, which can be used for both functional and imperative programming.
Java
4
star
21

rsync-rs-poc

Quick poc of the rsync wire protocol in Rust. Supports delta transfer.
Rust
4
star
22

actix-signal

Manage the lifecycle of an actix actor with its address.
Rust
4
star
23

jcss-rs

JAccount captcha solver service.
Rust
4
star
24

make-a-fortune-rpc-rs

An alternative RPC backend for make-a-fortune targeted at SJTU No Comment.
Rust
4
star
25

crazy_dave_bot

Yet another telegram chatbot.
Python
3
star
26

sjtu-schedule-exporter-backend

The backend of SJTU Schedule Exporter
Python
3
star
27

neo_baka_chat

A toy chat bot which uses a simple LSTM model to generate replies to inputs, refreshed.
Python
3
star
28

baka-chat

A toy chat bot which uses a simple LSTM model to generate replies to inputs.
Python
3
star
29

nmsl-telegram-bot-rs

Generate Xiaochuan Sun style emoji sentences via inline telegram bot.
Rust
3
star
30

hmap-serde

Serialize/deserialize heterogeneous maps.
Rust
2
star
31

arch-db-meta-rs

This utility can help you extract all packages and their metadata from a pacman synced db file.
Rust
2
star
32

lib-rs-feed

Feed for lib.rs
Rust
2
star
33

the-martian-bot

Rust
2
star
34

arch-repo-builder-docker

Shell
2
star
35

jcss

Python
2
star
36

sjtu-lib-booking

A simple script that helps you book a seat in library.
Python
2
star
37

hormones-toolkit

A web app that can recognize sex steroids data from your online medical record, and convert units if needed.
TypeScript
2
star
38

tokio-io-compat

Compatibility wrapper around std io traits that implements tokio io traits.
Rust
2
star
39

blahaj

A BLÅHAJ runs in a docker, supervises your processes, and handles reverse proxies for you.
Rust
2
star
40

opam-file-format-rs

Parser for the opam file syntax written in rust
Rust
2
star
41

rust-dylib-example

Rust
1
star
42

cargo-edit-completion

Rust
1
star
43

flakes

Nix
1
star
44

LQStatus

1
star
45

feeditlater

Python
1
star
46

ee458_exm_py

SJTU EE458, excuse me?
Python
1
star
47

parcel-opencv-min-reprod

TypeScript
1
star
48

nur-packages

Nix
1
star
49

nix-overlay

Nix
1
star
50

diesel-not-null-test

Rust
1
star
51

sjtu-schedule-exporter

SJTU 课表导出工具
JavaScript
1
star
52

RideMiner

Analysis and Visualization of Online Ride-Hailing Order Data in Chengdu.
C++
1
star
53

online-transitive-closure-rs

Online Transitive Closure (and SCC)
Rust
1
star
54

latex-workshop-docker

Docker for code-server + latex-workshop + texlive
Dockerfile
1
star
55

cs3310-frontend

TypeScript
1
star
56

noc-repro

Nix
1
star
57

actix-xml

XML extractor for actix-web
Rust
1
star