0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Clojureの基本構文

Last updated at Posted at 2024-12-03

advent_calendar_2024.png

Advent Calendar 2024 Day 4

基本構文

3つの基本についてまとめていきます

  1. リテラル
  2. 関数の定義と呼び出し
  3. 特殊フォーム

今日は 1.リテラル についてまとめます

1. リテラル

数値型

42        ; Long
-1.5      ; Double
22/7      ; Ratio

;を書くことでコメントを挿入することができます。

通常、整数は Long 型として扱われますが、
Nサフィックスをつけることで BigInt 型として扱うことができます。

(+ 9223372036854775807 1)
; Execution error (ArithmeticException) at java.lang.Math/addExact (Math.java:931).
; long overflow

9223372036854775807N
(+ 9223372036854775807N 1)
; 9223372036854775808N

同様に、少数は Double 型として扱われますが、
Mサフィックスをつけることで BigDecimal 型として扱うことができます。

(* 1.1 1.1)
; 1.2100000000000002

(* 1.1M 1.1M)
; 1.21M

文字型

  • 文字列はダブルクォーテーション"で囲まれて表現されます
    • "hello"
  • 個々の文字はバックスラッシュ\を先頭につけて表現されます
    • \e
  • 改行やspace、tabなどには特殊な名前がついています
    • \newline
    • \space
    • \tab
  • Unicodeを直接指定することもできます
    • \u3042
  • 正規表現に関しては文字列の先頭に#をつけることで表現できます。この文字列はJava.util.regex.Patternオブジェクトにコンパイルされます
"hello"         ; string
\e              ; character
\newline        ; character
\u3042          ; character ; あ
#"[0-9]+"       ; segular expression

シンボル

シンボルは、英字、数字、記号(一部除く)で構成され、
関数や値、名前空間などを参照するために使用されます

シンボルはオプションで名前空間を持つことができ、
スラッシュ / で区切られます

map             ; symbol
clojure.core/+  ; namespaced symbol
nil             ; null value
true false      ; booleans
:alpha          ; keyword
:release/alpha  ; keyword と namespace

コレクション

Clojureには4つのコレクションタイプがあります。

  1. list
    1. '()で囲みます
    2. 順序付き
    3. indexではなく、firstrestで要素を取り出す
  2. vector
    1. []で囲みます
    2. 順序付き
    3. indexされされていて、get関数を使って、任意の要素を取得できる
  3. set
    1. #{}で囲みます
    2. 順序がない
    3. ユニークな要素の集合体
  4. map
    1. {}で囲みます
    2. キーとバリューのペアを格納する
    3. キーはユニークになる
'(1 2 3)     ; list
[1 2 3]      ; vector
#{1 2 3}     ; set
{:a 1, :b 2} ; map

明日は2. 関数の定義と呼び出しについてまとめます

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?