Skip to content

Instantly share code, notes, and snippets.

View developer-sdk's full-sized avatar
Finding...

hs_seo developer-sdk

Finding...
View GitHub Profile
@developer-sdk
developer-sdk / inheritance.py
Created March 2, 2019 14:10
python inheritance
#!/usr/bin/env python
# -*- coding:utf-8 -*-
class Parent(object):
def __init__(self, name):
self.name = name
print('My name is {0}'.format(name))
def show(self):
object FuncThinking1 extends App {
def firstIndexOfAny(input: String, searchChars: Seq[Char]): Option[Int] = {
def indexedInput = (0 until input.length).zip(input)
val result = for (pair <- indexedInput; char <- searchChars; if (char == pair._2))
yield (pair._1)
if (result.isEmpty)
None
@developer-sdk
developer-sdk / PersonList.java
Created March 5, 2019 12:46
명령형 프로그래밍
import java.util.ArrayList;
import java.util.List;
public class PersonList {
public String cleanNames(List<String> listOfNames) {
StringBuilder builder = new StringBuilder();
for(int i = 0; i < listOfNames.size(); i++) {
if(listOfNames.get(i).length() > 1) {
@developer-sdk
developer-sdk / FuncThinking2.scala
Created March 5, 2019 12:48
서술형 프로그래밍
object FuncThinking2 extends App {
val employees = List("james", "s", "kevin", "paul")
val result1 = employees.filter(_.length > 1).map(_.capitalize).reduce(_ + "," + _)
println(result1)
// 동일한 결과, 최종 문자열 조인의 차이
val result2 = employees.filter(_.length > 1).map(_.capitalize).mkString(",")
println(result2)
}
@developer-sdk
developer-sdk / time.scala
Created March 6, 2019 13:21
scala, 시간경과 확인
import java.util.concurrent.TimeUnit.NANOSECONDS
def time[T](f: => T): T = {
val start = System.nanoTime()
val ret = f
val end = System.nanoTime()
// scalastyle:off println
println(s"Time taken: ${NANOSECONDS.toMillis(end - start)} ms")
// scalastyle:on println
ret
}
val employees = List("james", "s", "kevin", "paul")
// 서술형 프로그래밍
val result1 = employees.filter(_.length > 1).map(_.capitalize).reduce(_ + "," + _)
// par을 추가하여 병령처리
val result2 = employees.par.filter(_.length > 1).map(_.capitalize).reduce(_ + "," + _)
// a 와 b를 더하는 함수를 반환
def adder(a: Int) = (b: Int) => {
a + b
}
// a의 값에 각각 5와 7을 바인딩, 함수가 해제하기 전까지 데이터를 저장
def addFive = adder(5)
def addSeven = adder(7)
println(addFive(2)) // 7
@developer-sdk
developer-sdk / currying.scala
Created March 8, 2019 12:49
스칼라,커링
def modN(n: Int)(x: Int) = ((x % n) == 0)
// modN함수를 커링을 이용하여 n 값이 정해진 변수로 호출
def modOne:Int => Boolean = modN(1)
def modTwo = modN(2) _
println(modOne(4)) // true
println(modTwo(4)) // true
println(modTwo(5)) // false
@developer-sdk
developer-sdk / memoizeSample.scala
Created March 11, 2019 12:45
스칼라 메모아이즈 샘플, scala memoize, 함수 데이터 캐싱
object memoizeSample extends App {
// 처리 시간 출력
import java.util.concurrent.TimeUnit.NANOSECONDS
def time[T](f: => T): T = {
val start = System.nanoTime()
val ret = f
val end = System.nanoTime()
println(s"Time taken: ${NANOSECONDS.toNanos(end - start)} nonos")
ret
}
@developer-sdk
developer-sdk / ClassifierAlpha.java
Created March 13, 2019 14:42
명령형, 자연수 분류기 , 소수 분류기
package functional.stage1;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/**
* 명령형 자연수 분류기
*
* @author whitebeard-k