scala(17)
-
Elements of Programming - Coursera 강의 ppt 번역
Elements of Programming 대다수의 중요한 programming 언어에서는 아래의 요소들을 제공한다. - 가장 단순한 element를 표현할 수 있는 기본 표현법- 표현을 결합하기 위한 방법들- 추상 표현을 하기 위한 방법들 The Read-Eval-Print Loop Functional programming은 계산기의 사용과 약간 비슷하다. interactive shell(REPL )은 표현을 쓰고 값을 리턴할 수 있게 해준다.Scala REPL은 단순하게 타이핑 함으로써 시작할 수 있다. > scala Expressions 아래 예제는 REPL을 이용하여 interaction하는 단순한 방법이다. scala> 87 + 145232 Functional programming languag..
2015.12.23 -
Functional Programming Principles in Scala - Coursera 강의 ppt 번역
Programming Paradigms Paradigm : 과학적으로 paradigm은 구별된 개념 또는 몇몇의 과학적 규율 내에서의 생각의 패턴등을 말한다.주요 programming paradigms은 - imperative programming- functional programming- logic programming 을 들 수가 있으며, 이와는 독립적으로 - object-oriented programming 을 들 수가 있다. Review: Imperative programming - 변수를 수정할 수가 있다.- 값을 대입한다.- if-then-else나 loops, break, continue, return 등과 같은 제어 로직을 사용한다. imperative program의 대표적인 예로 Vo..
2015.12.22 -
패키지와 임포트
Package 자바, C#과 마찬가지로 Scala에서도 namespace 격인 package가 존재한다. Scala에서는 아래와 같은 3가지 방법으로 package를 선언하고 사용할 수가 있다. 자바에서의 package 사용 용법 1. 자바와 비슷한 형태 package com.jufactory class factory1 2. C#과 비슷한 형태 package com.jufactory { class factory1} 3. 중첩 형태 package com { package jufactory { class factory1 package otherfactory{ class factory2 } }} 만약에 아래와 같은 중첩 코드라면 package의 scope가 어떻게 될까?? package com { class ..
2015.05.28 -
[8강] 분수 클래스 만들기
이번에는 분수를 저장할 수 있는 클래스를 스칼라를 이용하여 만들어 볼 것이다. 기본 definition은 아래와 같다. class Rational(n:Int, d:Int) n에 분자가 d에 분모 값을 파라미터로 하는 class를 생성하였다. Java와의 다른 점인데 scala에서는 따로 생성자 함수를 만들지 않고 class에서 파라미터를 받고 처리하도록 되어 있다. 클래스를 만들었으니 한번 생성해보자. 생성은 무사히 잘된 것 같은데 밑에 이상한 글씨들이 뜬다.. toString을 기본적으로 overriding 해주지 않으면 default로 클래스 이름@16진수 이런식의 어떤 값을 표시해 줄 것이다. 좀 더 명확히 하기 위해 toString을 재정의해주자. class Rational(n:Int, d:Int..
2015.04.19 -
[7강] 특수 문자열 처리와 연산자 우선 순위
특수문자 표현 스칼라에서도 아래와 같이 특수 문자의 표현이 가능하다. 위의 사진을 보면 특수 문자 처리를 위해 다소 복잡해 보인다. 스칼라에서는 아래와 같이 변경할 수 있다. 또한 따옴표 세 개를 이용해서 두줄의 문자열도 표현할 수가 있다. 하지만 결과를 보면 문자열 사이에 공백도 포함되는 것을 확인할 수 있다. 공백을 없애고 싶다면 문자열 시작 부분에 '|'를 기입해준 후 stripMargin 함수를 호출하면 된다. 비트 연산 스칼라에서의 비트 연산은 기존의 다른 프로그래밍 언어들과 비슷하다. 그 중 특이한게 있어서 리마인드 차원에서 남긴다. 스칼라의 비트 시프트 연산자는 () 가 있으며 추가로 (>>>) 연산자도 있다. >>, > 31 -1은 이진 표현으로 111111111111111111111111..
2015.04.18 -
[6강] 컴파일하기
Scalac로 컴파일을 하기 위해 아래의 두 코드를 작성하였다. 참고로 스칼라는 자바처럼 파일 이름과 클래스 이름을 동일하게 맞추지 않아도 동작한다. Summer.scala import ChecksumAccumulator.calculate object Summer{def main(args: Array[String]){for(arg scalac Summer.scala ChecksumAccumulator.scala 이렇게 해주면 .class 파일과 파일명 끝이 $로 끝나는 파일들이 생성되는 것을 확인할 수 있다.신기하게도 그냥 scala라고 치고 매개변수를 입력해주면 scala 인터프리터에서 알아서 main을 찾아서 실행을 해준다.참 신기하다.
2015.04.17