<commit_before>---
layout: post
title:  "Clojure 시퀀스1"
author: Degan
categories: clojure seq
tags:   clojure lein seq	
comments: true
---

## 시퀀스 세가지 기본 특성

<script src="https://gist.github.com/degan85/c5b8d28ca9828ba71466d057cdc18679.js"></script>

<script src="https://gist.github.com/degan85/c5b8d28ca9828ba71466d057cdc18679.js?sequence.clj
"></script>

 - conj와 다른 관련된 함수들이 자료구조의 내부 구현과 관련해 가장 효율적으로 선택
 - list는 맨 앞으로 삽입

```clojure
(conj '(1 2 3) :a)
;(:a 1 2 3)
```

 - 벡터는 맨 뒤로 삽입
 
```clojure
(conj '[1 2 3] :a)
(1 2 3 :a)
```

 - 클로저의 시퀀스 라이브러리는 규모가 큰(심지어 무한대) 시퀀스를 다루는데 매우 적합
 - 대부분의 클로저 시퀀스가 실제로 꼭 필요해질 때까지 연산을 **미루기** 때문
 - 또한 클로저의 시퀀스는 **변경 불가능**

## 시퀀스 생성<commit_msg>Update 2019-02-21-clojure-sequence1.md<commit_after>---
layout: post
title:  "Clojure 시퀀스1"
author: Degan
categories: clojure seq
tags:   clojure lein seq	
comments: true
---

## 시퀀스 세가지 기본 특성

<script src="https://gist.github.com/degan85/c5b8d28ca9828ba71466d057cdc18679.js?sequence.clj
"></script>

 - conj와 다른 관련된 함수들이 자료구조의 내부 구현과 관련해 가장 효율적으로 선택
 - list는 맨 앞으로 삽입

```clojure
(conj '(1 2 3) :a)
;(:a 1 2 3)
```

 - 벡터는 맨 뒤로 삽입
 
```clojure
(conj '[1 2 3] :a)
(1 2 3 :a)
```

 - 클로저의 시퀀스 라이브러리는 규모가 큰(심지어 무한대) 시퀀스를 다루는데 매우 적합
 - 대부분의 클로저 시퀀스가 실제로 꼭 필요해질 때까지 연산을 **미루기** 때문
 - 또한 클로저의 시퀀스는 **변경 불가능**

## 시퀀스 생성
{'fraction_non_alphanumeric': 0.14891975308641975, 'fraction_numerical': 0.08024691358024691, 'mean_word_length': 3.3523489932885906, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 3, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2749618', 'n_tokens_mistral': 949, 'n_tokens_neox': 1074, 'n_words': 182}