- 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..
Option값이 있거나 또는 없거나 한 상태를 나타낼 수 있는 타입이다. 값이 담겨져 있는 Option 의 하위 타입은 Some[T] 이며, 값이 없으면 None 이다. Option 은 Try, Future 등과 함께 대표적인 모나딕컬렉션 이다. "컬렉션" 이다.보통 Option 을 떠올리면 2가지를 생각해야한다.1. null 을 안전하게 대체하기 위해 만들어진 것. -> 사용자에게 주의를 다시 한번 당부하는 것으로, null 예외가 발생할 확률을 없앤다.2. 연속체인에서 안정적으로 사용하기 위한 것 -> 연속으로 계산되는 상황에서 안정적으로 실행된다. 즉 중간에 문제가 생기는것을 방어한다. 주의 할 것은 방어가 되는 함수는 따로 있다는 것이며 아래 표에서 자세히 설명된다. Option 이 사용되는 경우..
List 활용 * List 는 스칼라에서 가장 많이 사용되는 데이터 구조일 겁니다.* 스칼라의 리스트는 디폴트로 불변형입니다.* 스칼라의 리스트 타입은 공변적입니다. 길이 구하기val a = List (1,2,3) a.length // 3 *배열과 달리 리스트의 length 는 비교적 비싼 연산입니다. a.isEmpty 를 a.length == 0 으로 사용하지 마세요. 양 끝에 접근하기val a = List ('a','b','c','d')a.head // 'a' 처음a.last // 'd' 마지막a.tail // List('b', 'c','d') 처음 제외 나머지 a.init // List('a','b','c') 마지막 제외 나머지 리스트 뒤집기 val a = List ('a',b','c','d')a...
- Total
- Today
- Yesterday
- 블록체인
- 이더리움
- Hyperledger fabric gossip protocol
- Play2
- 그라파나
- 스위프트
- Golang
- 스칼라 강좌
- Actor
- 하이브리드앱
- 파이썬 동시성
- 엔터프라이즈 블록체인
- Play2 로 웹 개발
- 플레이프레임워크
- 주키퍼
- 파이썬 데이터분석
- 스칼라 동시성
- 파이썬 머신러닝
- Akka
- hyperledger fabric
- akka 강좌
- Adapter 패턴
- 안드로이드 웹뷰
- 파이썬 강좌
- 하이퍼레저 패브릭
- CORDA
- play 강좌
- 파이썬
- play2 강좌
- 스칼라
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |