간단하게 생각해서 길이 10 리스트 뒤에 3개원소를 붙인다면 비용이 33이 되지만, 뒤집고 붙이고 뒤집는다면 비용이 23이 되겠죠. 전자는 페인트공 알고리즘이 되기 때문에 리스트가 길면 길수록 비효율적이 됩니다.
--
이 메일은 Google 그룹스 '라 스칼라 코딩단' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 scala-korea...@googlegroups.com에 이메일을 보내세요.
이 그룹에 게시하려면 scala...@googlegroups.com에 이메일을 보내세요.
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/scala-korea/c9e12496-e815-4602-907e-bcfdce4f86dd%40googlegroups.com을(를) 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/d/optout을(를) 방문하세요.
head | tail | apply | update | prepend | append | insert | |
---|---|---|---|---|---|---|---|
immutable | |||||||
List | C | C | L | L | C | L | - |
Stream | C | C | L | L | C | L | - |
Vector | eC | eC | eC | eC | eC | eC | - |
Stack | C | C | L | L | C | C | L |
Queue | aC | aC | L | L | L | C | - |
Range | C | C | C | - | - | - | - |
String | C | L | C | L | L | L | - |
mutable | |||||||
ArrayBuffer | C | L | C | C | L | aC | L |
ListBuffer | C | L | L | L | C | C | L |
StringBuilder | C | L | C | C | L | aC | L |
MutableList | C | L | L | L | C | C | L |
Queue | C | L | L | L | C | C | L |
ArraySeq | C | L | C | C | - | - | - |
Stack | C | L | L | L | C | L | L |
ArrayStack | C | L | C | C | aC | L | L |
Array | C | L | C | C | - | - | - |
C | The operation takes (fast) constant time. |
eC | The operation takes effectively constant time, but this might depend on some assumptions such as maximum length of a vector or distribution of hash keys. |
aC | The operation takes amortized constant time. Some invocations of the operation might take longer, but if many operations are performed on average only constant time per operation is taken. |
Log | The operation takes time proportional to the logarithm of the collection size. |
L | The operation is linear, that is it takes time proportional to the collection size. |
- | The operation is not supported. |
--
Google 그룹스 '라 스칼라 코딩단' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 scala-korea...@googlegroups.com에 이메일을 보내세요.
이 그룹에 게시하려면 scala...@googlegroups.com(으)로 이메일을 보내세요.
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/scala-korea/CAMzzDrw7KYk7tehXCaRXJ%3DyE_U4Oj_0eOFCB5tBASJ8WnHqENQ%40mail.gmail.com 을(를) 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/d/optout을(를) 방문하세요.
Cons라는 자료구조에 대해 이해하시면 왜 그렇게 작동하는지와 메소드들의 복잡도에 대해 이해하는데 도움이 될껍니다 :)
Cons 구현하는 것도 책에 있었는데 PiS에 있는지 FPiS에 있었는지 가물가물하네요