(ns src.helloworld)
(defn fibonacci[a b] (println a b (fibonacci (+ b 1) a + b)))
(fibonacci 0 1)
我是函数式编程的新手,我决定开始学习Clojure,因为它是,与C#完全不同。我想开阔眼界。
以下是我遇到的错误:
Clojure 1.2.0
java.lang.IllegalArgumentException:
Wrong number of args (4) passed to:
helloworld$fibonacci
(helloworld.clj:0) 1:1 user=>
#&
我对在C上开发自己的编程语言很感兴趣,但我不知道从哪里开始。
所以,我研究过,这引起了我的注意:
A lot of languages are C-based.
流行的编程语言,如C++和Objective,可能还有C#和Java都建立在C之上(更别提Python了)
C++和object创建者是如何创造出一种新的基于C的语言,但是添加了面向对象的编程概念呢?
我目前正在学习编程语言的概念和语用,因此我觉得我需要帮助来区分声明性语言家族的两个分支。
考虑下面的代码片段,它们分别用Scheme和Prolog编写:
;Scheme
(define gcd
(lambda (a b)
(cond ((= a b) a)
((> a b) (gcd (- a b) b))
(else (gcd (- b a) a)))))
%Prolog
gcd(A, B, G) :- A = B, G = A.
gcd(A, B, G) :- A >