# MAL - Make a Lisp

> Clean Markdown view of GeekNews topic #996. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=996](https://news.hada.io/topic?id=996)
- GeekNews Markdown: [https://news.hada.io/topic/996.md](https://news.hada.io/topic/996.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2019-12-01T08:03:41+09:00
- Updated: 2019-12-01T08:03:41+09:00
- Original source: [github.com](https://github.com/kanaka/mal/)
- Points: 4
- Comments: 1

## Topic Body

MAL은 Clojure에서 영감을 받은 LISP 인터프리터로,79개의 개발언어로 각각 구현됨.

똑같은 인터프리터를 여러개의 언어로 구현해둬서, 새로운 언어를 배우는 용도로 사용 가능.

코드는 11단계로 나뉘어져 있고, 최종단계는 셀프호스팅(MAL 구현체가 MAL을 다시 실행)

## Comments



### Comment 650

- Author: xguru
- Created: 2019-12-01T08:05:14+09:00
- Points: 1

Javascript 기반의 MAL 구현체에서 바로 사용해볼수 있음.

Mal Web REPL - https://kanaka.github.io/mal/

구현의 단계별 설명

https://github.com/kanaka/mal/blob/master/process/guide.md

The Make-A-Lisp Process

Step 0: The REPL

Step 1: Read and Print

Step 2: Eval

Step 3: Environments

Step 4: If Fn Do

Step 5: Tail call optimization

Step 6: Files, Mutation, and Evil

Step 7: Quoting

Step 8: Macros

Step 9: Try

Step A: Metadata, Self-hosting and Interop
