星期三, 3月 24, 2010

十年鑄一劍,今請攖其鋒

這其實是唐鳳在以前"我的資訊探索"對自己下的評語,約在四五年前,看到這段文字沒什麼感覺,今日再看,感觸不少。

其實不想再陳腔爛調說自己要多努力之類的,但是可以談談別的,從我開始寫程式的那一刻到現在也很多年了,總是警告自己不要以為自己會了就想飛翔了,總是要忍耐,因為我不知道自己缺少了什麼,在這一陣子,學習如何建立數學模型(到現在還是沒有學會 XD),真的不知道自己會建出怎麼樣的東西,但是在那之前只能等待了。

我的人生對於一般人而言算是相當平順的,這很大的成得要感謝我的爸媽,但是,離我自己的目標,我想就有如這句話吧。

之前跟某個老師聊天時,他說他要玩 Facebook 上的小遊戲,不然做研究會很無聊做不下去,也提及到多看看學生現在做什麼才不會脫節。老實說,我人生對於大部分的人而言己經越來越無聊了,MSN 關的時間比以前長上不少,想事情學習的時間幾乎佔了大部分,休息就是想另外一個問題,煩了就是睡覺。連我自己都很好奇,這樣子的生活我覺得很棒,我不知道別人怎麼想,至少我很喜歡我現在的生活。一切即劍的生活。


---

星期二, 3月 23, 2010

Haskell Practice - Natural Number

其實就照著書上的教學盡量自己推然後寫,大概是看了 fold fusion ,直觀意義大概就是直接代入後可以少一層,然而這樣子做的好處在 function compose 上可能會少一些動作吧。這篇大概是做個紀錄。不過對我自己而言,做這個練習算是讓我體會到很多事,所有的事都可以依靠簡單的元素來完成時,真的是一件很漂亮的事 !!


data Nat = Zero | Succ Nat
    deriving(Show)

createNat :: Integer -> Nat
createNat i = createNat' i Zero

createNat' :: Integer -> Nat -> Nat
createNat' 0 n = n
createNat' i n = createNat' (i-1) (Succ n)

plusNat :: Nat -> Nat -> Nat
plusNat m Zero = m
plusNat m (Succ n) = Succ (m `plusNat` n)

multNat :: Nat -> Nat -> Nat
multNat m Zero = Zero
multNat Zero n = Zero
multNat (Succ m) (Succ n) = (multNat (Succ m) n) `plusNat` (Succ m)

divNat :: Nat -> Nat -> Nat
divNat (Succ m) Zero = undefined
divNat Zero _ = Zero
divNat (Succ m) (Succ n)
    | (Succ m) == (Succ n) = Succ Zero
    | (Succ m) < (Succ n) = Zero
    | (Succ m) > (Succ n) = (Succ Zero) `plusNat` (divNat ((Succ m) `subNat` (Succ n)) (Succ n))

exponNat :: Nat -> Nat -> Nat
exponNat m Zero = (Succ Zero)
exponNat (Succ m) (Succ n) = (exponNat (Succ m) n) `multNat` (Succ m)

instance Eq Nat where
    Zero == Zero = True
    Zero == Succ n = False
    Succ m == Zero = False
    Succ m == Succ n = (m==n)

    Zero /= Zero = not(Zero == Zero)
    Zero /= Succ n = True 
    Succ m /= Zero = True 
    Succ m /= Succ n = not(m==n)

instance Ord Nat where
    Zero < Zero = False
    Zero < Succ n = True
    Succ m < Zero = False
    Succ m < Succ n = (m= Zero = True 
    Zero >= Succ n = False 
    Succ m >= Zero = True 
    Succ m >= Succ n = not(m Zero = False
    Zero > Succ n = False 
    Succ m > Zero = True 
    Succ m > Succ n = (m>n)
    
    Zero <= Zero = True 
    Zero <= Succ n = True 
    Succ m <= Zero = False 
    Succ m <= Succ n = not(m>n)

    max m n = if m > n then m else n
    min m n = if m < n then m else n

subNat :: Nat -> Nat -> Nat
subNat m Zero = m
subNat (Succ m) (Succ n) 
    | (Succ m) < (Succ n) = undefined
    | otherwise = subNat m n

factNat :: Nat -> Nat
factNat Zero = Succ Zero
factNat (Succ m) = (Succ m) `multNat` (factNat m)

fibNat :: Nat -> Nat
fibNat Zero = Succ Zero
fibNat (Succ Zero) = Succ Zero
fibNat (Succ (Succ m)) = (fibNat (Succ m)) `plusNat` (fibNat m)

infinity :: Nat
infinity = Succ infinity


---
不知道這篇會不會破壞版面 XD。

星期日, 3月 21, 2010

Perfume - ナチュラルに恋して (New Single)

本文同時在 *love the Perfume World*No title, no thinking, no meaning 發表

其實 Perfume 已經很久沒有發表新單曲了,去年光靠 One Room Disco 就唱了一整年 XD,能出新單曲我們這些聽歌的人算是可喜可賀 XD

進入正題,一開始的背景音樂讓我覺得有點電子化 (因為這本來就是電音),但是 Perfume 三人聲音之後,可能是把三個人的聲音調的比較機械聲 XD? 這種感覺說不上來,但是很像兩種極端但是互補,所以聽起來相當的輕鬆。

就 PV 而言,我一直覺得三個人在變漂亮,然後我看 A~Chan 在跳舞時,我竟然會想到 Michael Jackson 的月球漫步(掩面),兩個風格是差蠻多的,但是我就是會想到 ... Orz 但是這次的 PV 跟以往的不同是廣告商很有錢電子感覺比較少了(以前或多或少都有電腦動畫,從 ORD 之後好像就比較沒有了?)

歌詞方面就不做感想哩,一方面是不會日文只會看翻譯(歌詞有部分翻譯),一方面是沒看到完整版,就 ... (跑)


---
相當開心聽到這首歌 :)