SQL

分類 資料庫

全名

SQL 是 Structured Query Language 的縮寫。

用途

SQL是一種用來處理紀錄在 RDBMS (Relational Database Management System 關聯式資料庫管理系統,例如:MySQL, Oracle, Microsoft Access, PostreSQL) 當中資料的語言。

繼續閱讀

Haskell

分類 Haskell

使用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
33
data 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 -> Point

1
2

## Type synonym也可以具有type parameters

type Pair a = (a, a)
`
一個Pair可以是Pair Int (Int, Int),可能是(Char, Char)

參考資料

留言與分享

git筆記

分類 Git

commit


分支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 詞幹名詞

-a 詞幹名詞包含了陽性與中性名詞,

陽性

單數 雙數 複數
Nom गजः
gajaḥ
गजौ
-au
गजाः
-āḥ
Voc गज
gaja
गजौ
-au
गजाः
-āḥ
Acc गजम्
gajam
गजौ
-au
गजान्
-ān
Inst गजेन
gajena
गजाभ्याम्
-ābhyām
गजैः
-aiḥ
Dat गजाय
gajāya
गजाभ्याम्
-ābhyām
गजाभ्यः
-ābhyaḥ
Abl गजात्
-gajāt
गजाभ्याम्
-ābhyām
गजाभ्यः
-ābhyaḥ
Gen गजस्य
-gajasya
गजयोः
-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

參考資料

  • The Cambridge Introduction To Sanskrit (2016) 一書中作者 A.M.Ruppel 所整理精美文法表格
    pdf檔連結

留言與分享

統計筆記

分類 統計

初衷

生活中有大量的訊息,我們往往希望能從這些雜亂的訊息中解讀出有用的資訊甚至是預測未來的趨勢。舉例來說,政府統計全台灣各縣市的人均收入,也許按照年齡層、性別、職業別區份,可以讓人民更了解台灣的經濟現況以及不同群體之間的差異性。

名詞解釋

  • 母體 Population: 宇集
  • 參數 Parameter: 關於母體的描述統計量,例如母體平均數、母體標準差,或者關於母體的Data model的參數
  • 樣本 Sample: 母體的子集合
  • 統計值 Statistics: 關於樣本的描述統計量
  • Data Model: 用以產生新Data的模型,通常是未知,因此需要透過推論來得出。
  • Likelihood: 用來推論Data model時會有各種假說,透過計算各個假說的Likelihood,來找出符合現有證據最可能為真的假說

描述統計學

對於蒐集到的一組資料,要如何描述這組資料的特徵?有哪些特徵可以識別一組資料?

平均數

中數

眾數

range

Q3 - Q1

變異數

標準差

推論統計學

從蒐集到的樣本,我們希望可以推測出母體的狀態

Maximum Likelihood Estimation

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

留言與分享

作者的圖片

puerdon

學習筆記 / 資源整理 / 雜物堆放


語言學研究