3 ms·
In Lisp / Scheme, people may create a tiny language to express the problem. Steps: 1. Create a new language in which the problem is trivially expressed. 2. Sol
by DannyB2 10y ago
In Lisp / Scheme, people may create a tiny language to express the problem.
Steps:
1. Create a new language in which the problem is trivially expressed.
2. Solve the problem in the new language.
Lisp / Scheme are ideal for this.
Example: solve some sort of puzzle game.
Create a data structure that represents the board, a game piece and a move. Operators upon these. Given a board and a legal move, return a new board with the move applied. Given a board, give all of the possible legal moves (for a particular player if this a multi-player game instead of a puzzle).
Once you have that language it becomes easy to use your favorite off the shelf search algorithms. Depth first. Breadth first. A*. Etc.
But, this is probably not the same reason to create a "language" as the article. And the notion of "language" is quite different.
- cortesoft 10y agoWhat makes that a 'language' and not just a program? When I create a 'GameBoard' class in an OO language, I don't tell someone I created a new language. Doesn't a language have to be turing complete to be a language?
- wffurr 10y agoAre you sure your GameBoard class doesn't support the necessary primitives to be Turing complete? All you need is store and jump.
- deleted 10y ago[deleted]
- tejon 10y agoI haven't used any of these, but my understanding is that Agda and Coq are not Turing-complete, nor is Idris with the totality checker on. Never seen anyone dispute these being referred to as "languages."