Skip to content

Instantly share code, notes, and snippets.

View SeungUkLee's full-sized avatar
🌱
dot dot dot

Seunguk Lee SeungUkLee

🌱
dot dot dot
  • Republic Of Korea, Busan
View GitHub Profile
약자 한국정보과학회 (2020) BK21플러스 IF (2018) KAIST CS (2022) SNU CSE (2023.9) POSTECH CSE (2023.10) 평균 (정규화) 학회명 DBLP Key
AAAI 최우수 4 O O 최우수 1.00 AAAI Conference on Artificial Intelligence (AAAI) conf/aaai
AAMAS 우수 2 0.20 International Joint Conference on Autonomous Agents & Multiagent Systems (AAMAS) conf/atal
ACCV 우수 1 우수 0.25 Asian Conference on Computer Vision (ACCV) conf/accv
ACL 최우수 4 O O 최우수 1.00 Annual Meeting of the Association for Computational Linguistics (ACL) conf/acl
ACL Findings 우수 0.10 Findings of ACL series/findacl
ACSAC 우수 2 우수 0.30 Annual Computer Security Applications Conference (ACSAC) conf/acsac
AIED 우수 0.10 International Conference on Artificial Intelligence in Education (AIED) conf/aied
AISTATS 우수 1 우수 0.25 International Conference on Artificial Intelligence and Statistics (AISTATS) conf/aistats
ANCS 우수 1 우수 0.25 Symposium on Architectures for Networking and Communications Systems (ANCS) conf/ancs

Profiling in Haskell

Do not get bogged down in microoptimizations before you've assessed any macro optimizations that are available. IO and the choice of algorithm dominate any low level changes you may make. In the end you have to think hard about your code!

Before starting to optimize:

  1. Is the -O2 flag on ?
  2. Profile: which part of the code is the slow one.
  3. Use the best algorithm in that part.
  4. Optimize: implement it in the most efficient way.

In this tutorial we're going to build a set of parser combinators.

What is a parser combinator?

We'll answer the above question in 2 steps

  1. what is a parser?
  2. and.. what is a parser combinator?

So first question: What is parser?

@SeungUkLee
SeungUkLee / solidIsFp.md
Created February 12, 2020 11:04 — forked from anabastos/solidIsFp.md
Solid is FP - Luiz Stangarlin

SOLID is FP!

So, I decided to write a little thing, only to practice writing, it's about SOLID being compared between class-based-OO and FP, and there will be grammar errors and there will be a lot of formatting errors, 'bear' with me as I type this as fast as I can. Also correct if I'm wrong. Warning, wall of text in English.

Single responsibility principle

" a class should have only a single responsibility "

A pure function is something with a single responsibility, turning its input into an output. What could be simpler?.

@SeungUkLee
SeungUkLee / st-formal.ts
Created January 5, 2020 05:19 — forked from ENvironmentSet/st-formal.ts
ST Monad In Typescript
// Sorry for poor naming, this example was intented to explain how to use skolem capturing in practise.
interface Stateful<S, A> {
(state: S): [A, S]
}
function fmap<S, A, B>(f: (a: A) => B): (stateful: Stateful<S, A>) => Stateful<S, B> {
return stateful => state => {
const [a, nextState] = stateful(state);
import java.util.Arrays;
public class HashCodeFunctions
{
private final static short DEFAULT_PRIME_NUMBER = 31;
private HashCodeFunctions()
{
throw new AssertionError("Could not be instantiated.");
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Product)) return false;
Product that = (Product) o;
//that 이 proxyObject 일 수도 있으므로 getter 로 들고온다.
return Objects.equals(this.id, that.getId()) &&
Objects.equals(this.name, that.getName()) &&
Objects.equals(this.price, that.getPrice());
}
@Override
public String toString() {
return new StringBuilder("Product{")
.append("id=").append(id)
.append(", name='").append(name).append('\'')
.append(", price=").append(price)
.append('}').toString();
}
@SeungUkLee
SeungUkLee / use-git-and-git-flow.adoc
Created January 27, 2018 16:55 — forked from ihoneymon/use-git-and-git-flow.adoc
git 을 기반으로 git-flow를 사용하여 애플리케이션 배포버전을 관리하자.

GIT을 기반으로 한 프로젝트 개발프로세스

깃을 사용합시다. 깃을 쓰자. 깃을 쓰란 말야!!

  • SVN은 변경이력이 많아질수록 속도가 느리지.

    • 커밋 및 처리속도가 빠르다. 변경이력이 많이 축적되어 있어도 속도저하가 거의 없다.

  • 커밋찍기가 어렵다.

@SeungUkLee
SeungUkLee / 1.hs
Last active October 29, 2017 18:20
-- likelion
-- haskell 함수를 구현
-- fst
fst' :: (a,b) -> a
fst' (a, _) = a
-- snd
snd' :: (a,b) -> b
snd' (_, b) = b