參考資料:
r/haskell: what is exactly side effect?
Haskell Wiki: Intro to Haskell IO/Actions
在Haskell中,一個interactive program被視為一個「以目前世界狀態為input、以改變後的世界狀態為output」的純函數(pure function),新的世界狀態反映了在程式執行過程中所產生的副作用(side effect)。
繼續閱讀問題:副作用是什麼?如何定義?
參考資料:
r/haskell: what is exactly side effect?
Haskell Wiki: Intro to Haskell IO/Actions
在Haskell中,一個interactive program被視為一個「以目前世界狀態為input、以改變後的世界狀態為output」的純函數(pure function),新的世界狀態反映了在程式執行過程中所產生的副作用(side effect)。
繼續閱讀問題:副作用是什麼?如何定義?
所謂polymorphic function(多態函數)指的是可作用於多種類型的輸入的函數。
繼續閱讀data
宣告全新的type與type declaration只是宣告一個「關於既存類型的同義詞」不同,使用data
關鍵字可以宣告全新的類型。
在Prelude中,Bool
類型即是以下列方式宣告的:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33data Bool = True | False
```
- 在``=``左邊的稱為 type constructor (上例中的``Bool``)
- 在``=``右邊的稱為 data constructor 或 value constructor (上例中的``True`` 或 ``False``)
## 使用 type parameter 的時機
> We usually use type parameters when the type that's contained inside the data type's various value constructors isn't really that important for the type to work
f
> 名詞定義:
> concrete types, fully applied type: 像是 ``Maybe Int``, ``Maybe Char``
> 至於``Maybe``本身只是一個**type constructor**,並非具體的type。任何值都必須具有concrete type。
> 比較 ``Maybe`` 和 ``Maybe Int``:``Maybe``是一個type constructor,``Maybe Int``則是一個 concrete type
## 好好區分 type constructor 和 data constructor
type constructor只能出現在下面用``...``表示的幾個地方:
- ``data ... =``
- ``type ... =``
- ``::...``
- ``instance Eq ... where``
# 使用``type``為現存的type宣告新的別名
稱為 type synonym。用來給一個既有type提供一個別名。什麼時候需要這樣大費周章為已經存在的type提供新的名稱?
> We introduce type synonyms either to describe what some existing type represents in our functions (and thus our type declarations become better documentation) or when something has a long-ish type that's repeated a lot (like ``[(String,String)]``) but represents something more specific in the context of our functions.
> [LYAH](http://learnyouahaskell.com/making-our-own-types-and-typeclasses)
``Char``是一個Haskell本身就定義好的type,如果要以``Char``為基礎,建立新的type,那麼就要使用``type``:
type String = [Char]1
2
``Int``也是一個Haskell本身就有的、用以表達整數的type,如果想建立一個正整數座標的Point type,並包在tuple中,可以使用:
type Point = (Int, Int)1
2
3
4
當然,定義好新的type之後,新的type就可以用在別的type宣告中。
也許有一系列的function都與「將一個Point轉換到另一個Point」有關,因此可以為這群函數宣告一個新的type:
type Transformation = Point -> Point1
2
## Type synonym也可以具有type parameters
type Pair a = (a, a)`
一個Pair可以是Pair Int (Int, Int),可能是(Char, Char)
branch
branch
本質上僅僅是個指向commit 物件
的可變指標。Git 會使用master
作為分支的預設名字。在若干次提交後,你其實已經有了一個指向最後一次提交物件的master
分支,它在每次提交的時候都會自動向前移動。
分支其實就是從某個commit物件
往回看的歷史。
1 | $ git branch <new_branch_name> |
這個指令僅僅建立了新的分支,而不會自動將所在位址切換到這個新分支上。要切換到新分支上,需透過下方的git checkout
指令:
1 | $ git checkout <branch_name> |
執行 git checkout
就是把HEAD
指標指到新的分支上。
捷徑:建立新分支,同時切換到該分支
1 | $ git checkout -b <new_branch_name> |
merge
rebase
HEAD
指標指向目前所checkout的commit。
每次執行git checkout
指令,都會連帶改動HEAD
所指向的reference。
例如在執行下面代碼後:
1 | $ git checkout <a_commit> |
HEAD
就會同時指向該a_commit
。
HEAD
通常指向一個分支的名稱
-a 詞幹名詞包含了陽性與中性名詞,
單數 | 雙數 | 複數 | |
---|---|---|---|
Nom | गजः gaj aḥ |
गजौ -au |
गजाः -āḥ |
Voc | गज gaj a |
गजौ -au |
गजाः -āḥ |
Acc | गजम् gaj am |
गजौ -au |
गजान् -ān |
Inst | गजेन gaj ena |
गजाभ्याम् -ābhyām |
गजैः -aiḥ |
Dat | गजाय gaj āya |
गजाभ्याम् -ābhyām |
गजाभ्यः -ābhyaḥ |
Abl | गजात् -gaj āt |
गजाभ्याम् -ābhyām |
गजाभ्यः -ābhyaḥ |
Gen | गजस्य -gaj asya |
गजयोः -ayoḥ |
गजानाम् -ānāḥ |
Loc | गजे -e |
गजयोः -ayoḥ |
गजेषु -eṣu |
除了 Nom, Voc, Acc 這三格之外,其他的變格皆與a-詞幹陽性名詞相同。
單數 | 雙數 | 複數 | |
---|---|---|---|
Nom | वनम् -am |
वने -e |
वनानि -āni |
Voc | वनम् -am |
वने -e |
वनानि -āni |
Acc | वनम् -am |
वने -e |
वनानि -āni |
Inst | गजेन -ena |
गजाभ्याम् -ābhyām |
गजैः -aiḥ |
Dat | गजाय -āya |
गजाभ्याम् -ābhyām |
गजाभ्यः -ābhyaḥ |
Abl | गजात् -āt |
गजाभ्याम् -ābhyām |
गजाभ्यः -ābhyaḥ |
Gen | गजस्य -asya |
गजयोः -ayoḥ |
गजानाम् -ānāḥ |
Loc | गजे -e |
गजयोः -ayoḥ |
गजेषु -eṣu |
除了 Nom, Voc, Acc 這三格之外,其他的變格皆與a-詞幹陽性名詞相同。
單數 | 雙數 | 複數 | |
---|---|---|---|
Nom | वनम् -am |
वने -e |
वनानि -āni |
Voc | वनम् -am |
वने -e |
वनानि -āni |
Acc | वनम् -am |
वने -e |
वनानि -āni |
Inst | गजेन -ena |
गजाभ्याम् -ābhyām |
गजैः -aiḥ |
Dat | गजाय -āya |
गजाभ्याम् -ābhyām |
गजाभ्यः -ābhyaḥ |
Abl | गजात् -āt |
गजाभ्याम् -ābhyām |
गजाभ्यः -ābhyaḥ |
Gen | गजस्य -asya |
गजयोः -ayoḥ |
गजानाम् -ānāḥ |
Loc | गजे -e |
गजयोः -ayoḥ |
गजेषु -eṣu |
生活中有大量的訊息,我們往往希望能從這些雜亂的訊息中解讀出有用的資訊甚至是預測未來的趨勢。舉例來說,政府統計全台灣各縣市的人均收入,也許按照年齡層、性別、職業別區份,可以讓人民更了解台灣的經濟現況以及不同群體之間的差異性。
對於蒐集到的一組資料,要如何描述這組資料的特徵?有哪些特徵可以識別一組資料?
從蒐集到的樣本,我們希望可以推測出母體的狀態
Maximum likelihood estimation is a method that determines values for the parameters of a model. The parameter values are found such that they maximise the likelihood that the process described by the model produced the data that were actually observed.
Probability concepts explained: Maximum likelihood estimation
學習筆記 / 資源整理 / 雜物堆放
語言學研究