; for (int i = 0; i <= 10; i++){
; printf("%f\n", i);
; printf("%f\n", i * 2);
; }
(loop for i from 0 to 10
do
(progn
(print i)
(print (* i 2))
)
)
Tuesday, August 25, 2015
Lisp for the C++ programmer: for loop
Here is the example of for loop. Equivalent C++ code is commented on the top the Common Lisp code as comments.
Lisp for the C++ programmer: Function definitions and function calls
Here is the simple Common Lisp example, in which a sum and an ArithmaticMean functions defined. Both C++ and Common Lisp code here calculate the arithmetic mean of 1,2,3,4,5 and 6 which is 3.5. C++ code is commented as in the Common Lisp file.
; double sum (double *d, int len){
; double mysum = 0.0;
; for (int i = 0; i < len; i++){
; mysum += d[i];
; }
; return(mysum);
; }
;
; double ArithmeticMean (double *d, int len){
; return ( sum(d) / len );
; }
; int main(){
; double *mylist = (double*) malloc(sizeof(double) * 6);
; for (int i = 0; i < 6; i++){
; d[i] = (double)i;
; }
; printf("%f\n", ArithmeticMean(d, 6);
; return(0);
; }
(defun sum (aList)
(setq mysum 0.0)
(dotimes (i (length aList))
(setq mysum (+ mysum (nth i aList )))
)
mysum
)
(defun ArithmeticMean (aList)
(/ (sum aList) (length aList))
)
(print (ArithmeticMean '(1 2 3 4 5 6)))
Lisp for the C++ programmer: cond expression
Here is the example for the cond expression of Common Lisp and its C++ equivalent.
; int x = 10;
; if (x < 10) {
; puts("x is smaller than 10");
; } else if (x > 10){
; puts("x is bigger than 10");
; } else if (x == 10){
; puts("x equals to 10"));
; }
(setq x 10)
(cond
((< x 10) (print "x is smaller than 10"))
((> x 10) (print "x is bigger than 10"))
((= x 10) (print "x equals to 10"))
)
Wednesday, March 25, 2015
Singleton Design Pattern in PHP Example
Singleton Pattern |
//singleton design pattern class DB { private static $status = NULL; private static $info = 'mysql:host=localhost;dbname=dbname'; private static $username = 'username'; private static $password = 'password'; private function __construct() { } public static function connect() { if(!self::$status) { try { self::$status = new PDO(self::$info, self::$username, self::$password); self::$status->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); self::$status->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); } catch (PDOException $e) { throw new Exception($e->GetMessage()); } } return self::$status; } public function __destruct() { self::$status = NULL; } }
First, We define status as a static variable, because we want to control whether connection is exists via only one variable. Aftet that define database information as private static variables. After all we create our connection static function, that is connect().
Here is the way is actually, if status variable is not null, code try to connect PDO database, otherwise connection is exists and will return true,NOT null.
Finally, in destruct function, connection has been closed by null value. When we want to connect database, we call the singleton like:
See you!
Finally, in destruct function, connection has been closed by null value. When we want to connect database, we call the singleton like:
DB::connect();If class has any other function, then like:
DB::connect()->functionName($param);
See you!
Labels
design pattern,
php,
singleton
Sunday, March 22, 2015
Introduction to Fuzuli : JFuzuli REPL
Let's try JFuzuli:
1. Download the Jar
The current compiled jar of JFuzuli interpreter is release candidate 1.0. You can download it using the link https://github.com/jbytecode/fuzuli/releases/tag/v1.0_release_candidate. You can always find the newest releases in site JFuzuli Releases.
2. Open the Command Prompt
After downloading the jar file, open your operation system's command prompt and locate the jar file by using cd (change directory) command.
3. Start trying it!
In command prompt, type
java -jar JFuzuli.jar
to start. You will see the options:
Usage:
java -jar JFuzuli.jar fzlfile
java -jar JFuzuli.jar --repl
java -jar JFuzuli.jar --editor
You can specify a fuzuli source file to run. The option --repl opens a command shell. The last option --editor opens the GUI. Let's try the command shell.
java -jar JFuzuli.jar --repl
F:
F: (+ 2 7)
9.0
F: (- 7 10)
-3.0
F: (require "lang.nfl")
0.0
F: (let mylist '(1 2 3))
[1.0, 2.0, 3.0]
F: (first mylist)
1.0
F: (last mylist)
3.0
F: (length mylist)
3
F: (nth mylist 0)
1.0
F: (nth mylist 1)
2.0
Well, we introduce some basic operators, data types and commands here but not all of them. We always put an operator or command after an opening parenthesis, arguments follow this operator and a closing parenthesis takes place. This is the well-known syntax of LISP and Scheme. So what is the language properties, what are the commands, how to try more Fuzuli codes in JFuzuli??
Blog posts on JFuzuli : http://stdioe.blogspot.com.tr/search/label/jfuzuli
Blog posts on Fuzuli: http://stdioe.blogspot.com.tr/search/label/fuzuli
Our online interpreter is : http://fuzuliproject.org/index.php?node=tryonline
Fuzuli Language home page: http://fuzuliproject.org/
Subscribe to:
Posts (Atom)