原创 C語言常見排序算法

#include <stdio.h> void swap (int *x, int *y) {     int temp;     temp = *x; *x = *y; *y = temp; } //

原创 Lisp.可擴展的軟件

Lisp風格的編程是隨着軟件複雜度的增長而增長的。高端用戶現在要求程序做那麼多的事情,以至於我們不能滿足他們所有的需求。他們自己也不能完全滿足他們自己的需求。但是如果我們不能給他們滿足他們完全需求的軟件,我們可以給他們可擴展的軟件。我們將

原创 Lisp.函數

函數是Lisp程序的構建塊。它們也是Lisp的構建塊。在多數的語言中+操作符和用戶自定義函數是非常不同的。但是在Lisp中有一個單一模型,函數應用,來描述一個程序所要做的全部計算。Lisp的+操作符是一個函數,和你自己定義的函數一樣。

原创 MapReduce工作流

當處理變得非常複雜的時候,複雜性通過更多MapReduce任務,而不是更多的map和reduce函數來適應。換句話說,作爲一個經驗規則,考慮添加更多的jobs,而不是添加更多的複雜性給jobs。   對於更復雜的問題,值得考慮高層語言來代

原创 R語言,一些數據操作

我們首先創建一些向量 > manager <- c(1,2,3,4,5) > date <- c("10/24/08", "10/28/08", "10/1/08", "10/12/08", "5/1/08") > contry <- c

原创 Node.js——梗概

一個用Node寫成的web服務器,返回“Hello World”:   var http = require('http'); http.createServer(function(request, response){ respons

原创 R語言,圖形

本章包含: 創建和保存圖 個性化符號、線、顏色和座標軸 用文本和標題註釋 控制一個圖的維度 合併多個圖到一個 很多時候,我想客戶通過數字和文字展示精心準備好的統計結果,得到的只是他們發呆的樣子。同樣的客戶,當我以圖形的形式展示給他們同樣

原创 Lisp.函數作爲數據

兩樣東西使得Lisp函數不同。第一,上面提到的,Lisp自身就是一個函數的集合。這意味着我們可以向Lisp中加入我們自己的操作符。另外一個我們需要知道的關於函數的東西是它們是Lisp對象。 Lisp提供了其它語言中能找到的多數的數據類

原创 Lisp.定義函數

多數人通過defun來學習怎樣定義函數。下面的表達式定義了一個叫做double的函數,這個函數返回它參數的兩倍。 [1]> (defun double (x) (* x 2)) DOUBLE 將這些傳遞給Lisp之後,我們可以在其它函數中

原创 關於Node.js

Node的目標是爲構建可擴展的網絡程序提供一種簡單的方式。在上面的 “hello world”web服務器示例中,很多客戶端連接可以被並行處理。Node告訴操作系(通過epoll,kqueue,/dev/pool,或者是select),當

原创 Lisp.演進設計

因爲Lisp給你自己定義你自己操作符的自由,你可以把它鑄造成適合你需求的語言。如果你正在寫一個文本編輯器,你可以將Lisp轉化成一個寫編輯器的語言。如果你正在寫一個CAD程序,你可以將Lisp轉化成寫CAD程序的語言。如果你不知道你在寫什

原创 C語言實現二分查找算法

#include <stdio.h>int binsearch(int x, int v[], int n){  int low, high, mid;  low = 0;  high = n - 1;