일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스칼라 강좌
- Adapter 패턴
- play2 강좌
- 엔터프라이즈 블록체인
- 이더리움
- Hyperledger fabric gossip protocol
- 안드로이드 웹뷰
- Play2 로 웹 개발
- 주키퍼
- akka 강좌
- 파이썬 데이터분석
- 스위프트
- Actor
- 파이썬
- 하이퍼레저 패브릭
- 스칼라
- Golang
- CORDA
- play 강좌
- hyperledger fabric
- 파이썬 머신러닝
- Play2
- 하이브리드앱
- 파이썬 동시성
- Akka
- 블록체인
- 그라파나
- 파이썬 강좌
- 스칼라 동시성
- 플레이프레임워크
- Today
- Total
목록Scala (51)
HAMA 블로그
스칼라에서 사용되는 심볼들 http://stackoverflow.com/questions/7888944/what-do-all-of-scalas-symbolic-operators-mean 나는 교육을 위한 목적으로 4개의 카테고리로 연산자들을 나눕니다.Keywords/reserved symbolsAutomatically imported methodsCommon methodsSyntactic sugars/composition다행히도 대부분의 범주는 다음과 같은 질문에서 나타납니다:-> // Automatically imported method ||= // Syntactic sugar ++= // Syntactic sugar/composition or common method
Type projection 개요:타입 안의 (nested) 타입 멤버를 레퍼런싱 하기 위한 문법이다. T#x 라고 지칭하며, 타입 T 안의 x 라는 이름의 타입 멤버를 나타낸다. 예제: 아래에 보면 클래스 내부에 또 하나의 클래스 (nested class) 가 있는 것을 볼 수 있다.class A { class B def f(b: B) = println("Got my B!") } 아래와 같이 시도해보면 scala> val a1 = new A a1: A = A@2fa8ecf4 scala> val a2 = new A a2: A = A@4bed4c8 scala> a2.f(new a1.B) :11: error: type mismatch; found : a1.B required: a2.B a2.f(new a1...
스칼라에서의 for - comprehensions 1. 개념 스칼라 Doc 에서는 이렇게 말합니다. (http://docs.scala-lang.org/tutorials/FAQ/yield.html)파이썬,루비등에 있는 yield 처럼 스칼라도 yield 를 가지고 있지만 좀 다릅니다. 스칼라의 yield 는 for comprehensions 의 일부분으로 사용되며, 다른 언어의 list-comprehensions 의 일반화 입니다. 스칼라의 "for comprehensions" 는 하스켈의 "do" 와 동등하며 멀티플모나딕 연산을 위한 사용편의 정도일 뿐입니다. 사실 for - comprehensions 같은것들은 syntactic sugar 라고 합니다. 번역하면 사용자가 편하게 사용하기 위한 사탕발림 ..
* 참고로 커링이 무엇인가요에 대한 대답은 너무 쉽다. 하지만 왜 커링이 그렇게 유용하나요? 에 대한 대답은 아직 못얻었다. 뇌 로는 알겠지만 체득하지 못한 상태. 스칼라를 함수형 파라다임으로 사용을 많이 해봐야 알게 되지 않을까.. 스칼라에서의 커링 (currying) 1. 개념 스칼라 Doc 에서는 이렇게 말합니다. (http://docs.scala-lang.org/ko/tutorials/tour/currying)메소드에는 파라미터 목록을 여럿 정의할 수 있다. 파라미터 목록의 수 보다 적은 파라미터로 메소드가 호출되면, 해당 함수는 누락된 파라미터 목록을 인수로 받는 새로운 함수를 만든다.중요한 포인트를 뽑아내어 쉽게 설명해보면 매우 쉬운 설명 - 메소드라는건 파라미터를 가지고 있지요? 예를들어 a..
- https://github.com/enshahar/BasicFPinScala/blob/master/Intermediate/Monad.md- https://github.com/enshahar/BasicFPinScala/blob/master/Intermediate/Monad_Rules.md - Monad Programming with Scala Future- http://www.haruair.com/blog/2986- http://blog.seulgi.kim/2015/07/what-is-monad.html- 자바언어로 서술한 Functor 와 모나드 제 능력이 부족한 관계로 위의 글로써 대신합니다. (모나드 관련 한글 블로그 모음) 아참! 위의 글을 읽기 전에 반드시 모나드 괴담!을 읽어보세요. ^^ 모..
스칼라에서 JSON 데이터 다루기* scala 기존제공하는것보다 json4s 나 spray-json 이 더 나은듯하다. 1. 디펜던시 추가 import scala.util.parsing.json._ 2. 문자열에서 Json 객체 (Map 타입) 로 변경 - (1) def main(arg : Array[String]): Unit ={ val result = JSON.parseFull(""" {"name": "Naoki", "lang": ["Java", "Scala"]} """) result match { case Some(e) => println(e) case None => println("Failed.") } } //print 결과 : Map(name -> Naoki, lang -> List(Java, ..
Partially applied function 과 Partial function 먼저 아래 링크 참고 하세요. (아웃사이더님이 번역하신 글이 있습니다)https://blog.outsider.ne.kr/953 아마 저 글을 읽어도 Partial function에 관해 조금 헤깔리실텐데요. 간략하게 다시 설명해 드리겠습니다. 함수란 모든 x 에 대해서 y 라고 할때 부분 함수란 일부 x 에 대해서 y 인 함수를 말 합니다. 즉 제한을 둔겁니다.예를들어function A (int x ) { return x * x } 라는 함수에 대해서 아래 함수는 부분함수입니다. function A' (int x) { if x > 10 return x * x }모든 것을 처리하지 않고 싶을 때 부분 함수를 만들게 됩니다. ..
언더스코어 _ 는 스칼라에서 어떻게 사용되나? 1. Import import scala.concurrent._import 에서 _ 는 모든을 뜻한다. 자바에서 * 2. 디폴트 초기화 class Foo { var i : Int = _ // i = 0 var s: String = _ // s = null }Int 는 0 으로 초기화 되고 String 을 대입하면 null 로 초기화 됩니다. 3. 고계 함수에서 익명 파라미터 ( 1 to 10) map { _ + 1 } 4. 부분 함수에서 익명 파라미터좀 더 정확히 얘기하면 partially applied function. partial function 과 구분된다. 바로가기 def f(i : Int) : String = i.toString def g = (x..
Null 과 친구들 Null – Trait 이다. 모든 참조 타입(AnyRef를 상속한 모든 클래스) 의 서브클래스이다. 값 타입과는 호환성이 없다. null – Null 의 인스턴스이고 자바의 null 가 비슷. val i : Int = null; 불가능 (값 타입과 호환성 없다) Nothing - Trait 이며 모든것들의 서브타입이다.기술적으로 예외는 Nothing 타입을 갖는다. 이 타입은 값이 존재하지 않는다. 값에 대입이 가능하다. 즉 리턴타입이 Int 인 메소드에서 리턴을 Nothing 타입인 예외를 던질 수 있다. Nil – 아무것도 없는 List 를 나타낸다.None – 아무것도 없다는 리턴 값을 표현하기 위해 사용된다. null 포인트 예외를 회피하기 위해 Option[T] 의 자식클래..
Apply자바를 하다가 스칼라로 넘어오면 희안한거 많이 보는데 apply 라는 것도 분명히 마주치게 되는데 이게 여러군데에서 다른 의미로 사용되서 좀 헤깔리죠. 그래서 이 참에 정리 한번 하고 넘어 갑니다. 기본 해당 객체 뒤에 하나 이상의 값을 괄호{}로 둘러싸서 호출하면 그 객체의 apply() 메소드를 자동으로 호출해 줍니다. 스칼라에서는 apply 라는 메소드가 기본적으로 이 객체(타입) 저 객체(타입) 에 각자 정의되어 있습니다.함수타입에서 apply 하면 이렇게 작동하고 , 리스트에서 apply 하면 요렇게 작동하고 그렇습니다. 중구난방이라는 말 그래서 어느정도는 외워야합니다.예를 보시죠예1)class applyTest { def apply(n : Int): Unit = { print ("he..