原创 《編程的本質》第五章-關於最大公約數的計算
最大公約數(Greatest Common Divisor, GCD)的計算是很多問題中比較關鍵的一個步驟,所以如何快速的計算最大公約數比較關鍵。本文將《編程的本質》中第五章中最大公約數的問題稍微總結一下。 1. 暴力破解法。只是我們在
原创 Google Test-Primer
引言:爲什麼使用Google測試框架 Google測試框架有助於編寫更好的C++測試。 不論你是工作在Linux,Windows或者是Mac上,如果你寫C++代碼,Google測試框架都可以幫助你。 然後,什麼是好的測試以及Google測
原创 《編程的本質》-第二章
編程的本質第二章看得也有點稀裏糊塗,現在將自己的理解寫出來,只是爲了以後自己在回憶的時候有個學習。 第二章的主要內容將Transformation,中文意思是變換的意思。即現在有個操作F,對於變量x,F(x)就是在x上變換。如果F(x)
原创 王小波全集第二卷-《我的精神家園》有感
在多看閱讀器上看到了《碼農》這本雜誌,覺得內容還不錯。在某一期(記不清)上有對酷殼博主陳皓的採訪,當時博主推薦了王小波的《我的精神家園》,不知道是指那一篇還是那一卷。寒假期間在圖書館中借到了這本書,讀一讀。 看到其中一篇文章“生活與小說
原创 Lisp tutorial
下面是參考了Standford大學的CS157課的一個PPT。作爲一個非常基本的LISP入門,給大家一個感性的認識。一般情況下我們可以安裝CLISP,Common Lisp,這個是標準。在Windows下和Linux下都有相應的版本。
原创 Scheme和Common Lisp中對函數作爲變量和返回值的處理方法差異
研究下Scheme和Lisp在lamba上的區別。今天晚上特別鬱悶。本來想體會一下Lisp中函數作爲第一等變量等柑橘,想不到卻不知道載了多少個跟頭。 Scheme Scheme作爲Lisp的一個方言,由MIT研發,並且GPL的協
原创 Google Test框架中的Makefile
本次我們來看看Google test框架中的Makefile是什麼樣子。這樣: 學習一些關於Makefile的基本知識 學習如何自己編譯使用Google Test的程序 # A sample Mak
原创 C++模板的匹配規則----最特殊
C++模板技術讓C++也能實現模板元編程,即在編譯期間完成判斷和計算。凡事總有特例,模板是爲了匹配最一般的情況,但是針對特殊情況需要做優化,則需要特殊處理,這稱爲模板的特化。當模板特化後,一個調用可能會符合不同的模板,這樣就需要選擇正
原创 Double checked locking,兩次檢查的鎖
最開始知道這個內容是在和室友聊天的時候發現的,它說國內某互聯網公司中有一道筆試題,需要當場寫出無鎖隊列的代碼。當時對於這個概念還是一知半解,後來他說陳皓博客上有相關的內容,本着好學的精神就去一窺究竟:無鎖隊列的實現 基本思想是利用編譯器
原创 Lisp中的Loop宏
LOOP提供了一種寫循環迭代的特殊語言。 這可能看起來比較大動干戈----爲了寫循環特地發明一種新的語言。但是如果你想想循環在程序中的用處,這種行爲開始有點兒在理。不論任何程序的大小,他們都會包含好多循環語句。而且,儘管他們不盡相
原创 git基礎知識
Git最初的作者是Linux內核的開發者Linus。之前linux內核維護是使用bitkeeper,但是他們發現有人在反編譯bitkeeper,收回了對開源的特權。所以開源社區需要開發一個屬於自己的版本控制工具,然後Git就誕生了。 Gi
原创 Lisp實現有理數的運算
編寫一個處理有理數的函數。這個是參考SICP上的一個章節來寫,其主要思想時將問題拆分成獨立的部分,然後利用這些部分構建整個過程。接下來載後面的過程中會增加正負號的判斷,並且自制打印函數,打印有理數。 (defun numer (x)
原创 SharedLibrary(so)的查找路徑
翻譯自:https://www.eyrie.org/~eagle/notes/rpath.html : Shared Library Search Paths 現在將所有的依賴都使用共享庫(Shared Library)的方式來連接是一
原创 LISP中的遞歸和尾遞歸
首先解釋一下概念: 遞歸:是指在函數的定義中使用函數自身的方法。遞歸一詞還較常用於描述以自相似方法重複事物的過程。 尾遞歸:在計算機科學裏,尾調用是指一個函數裏的最後一個動作是一個函數調用的情形:即這個調用的返回