QiでL-99 (P21 指定した位置に要素を挿入する) — #:g1

Posted 2008-04-05 12:57:00 GMT

-(http://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/funcional/L-99_Ninety-Nine_Lisp_Problems.html)
Qiにはバックトラックの構文もあって非決定性プログラミングの解説もチュートリアルにあります。
しかし説明が難しくて全然分からない(笑)

(insert-at alfa [a b c d] 2)
\=> [a alfa b c d]
\

(define insert-at Item [ ] _ -> [Item] Item Lst Pos -> [Item | Lst] where (>= 1 Pos) Item [H | T] Pos -> [H | (insert-at Item T (- Pos 1))])


comments powered by Disqus