컴퓨터/V language
-
V lang: FFI 사용하기컴퓨터/V language 2021. 7. 6. 11:04
FFI 외부 함수 인터페이스 - 위키백과, 우리 모두의 백과사전 외부 함수 인터페이스(Foreign function interface, FFI)는 한 프로그래밍 언어로 작성된 프로그램이 다른 언어로 작성된 서비스를 이용할 수 있거나 그에 따른 함수를 호출할 수 있는 구조이다. 이 용어 ko.wikipedia.org FFI 란? 외부 함수 인터페이스, 쉽게 이 글로 예를 들면 vlang으로 작성한 피보나치 함수를 dll/so로 export 하고 dart나 다른 언어에서 쓸 수 있도록 해주는 것이다. v 소스파일 -> dll/so 윈도우는 dll, 리눅스 계열은 so로 export 된다. ffi.v 간단한 피보나치 계산 함수이다. export에 어떠한 함수명으로 쓸지 결정할 수 있다. // ffi.v mod..
-
V language : Sleep Sort컴퓨터/V language 2020. 8. 22. 16:01
Sleep Sort Sleep sort란 4chan에 장난식으로 올라온 정렬 방법 task + time.sleep()을 이용해서 배열 값 만큼 sleep해서 먼저 출력되는 순서대로 보면 정렬된 배열이다. 1. 문법 살펴보기 V에서 concurrency(병행)으로 task를 실행하려면 go func()을 사용하면 된다. ※ 하지만, 다른 mutable 변수를 사용할 수 없어서, 출력 값을 저장하진 못했다. ※ V 0.1.29 기준으로 Global 변수도 없다. import sync import time fn task(id, duration int, mut wg sync.WaitGroup) { println("task ${id} begin") time.sleep_ms(duration) println("tas..
-
V language : Binary Search Tree (BST)컴퓨터/V language 2020. 8. 21. 19:53
Binary Search Tree 이진 탐색 트리 1. 문법 살펴보기 1. V에는 null type이 없다. (제일 힘들었다.) 2. try/catch/block V 언어에서는 try/catch/null이 다 없는데, or 키워드가 있다. 아래 코드를 보면 user := repo.find~(10) or { 이 있는데, 이 부분은, 함수를 만들 때 우선 ? 키워드를 사용하여 option type이라고 지정해야 하고, 사용할 때는 or { // 실패했을 때 // } 와 같이 사용해야한다. struct User { id int name string } struct Repo { users []User } fn (r Repo) find_user_by_id(id int) ?User { for user in r.us..
-
V language : Introspective Sort컴퓨터/V language 2020. 8. 20. 14:58
Introspective Sort IntroSort (Introspective Sort) 인트로 정렬은, Quick Sort의 장점을 유지하면서, 최악 시나리오 O(n^2)를 해결하려 만들어진 (Quick Sort + Heap Sort + Insertion Sort) 하이브리드 알고리즘이다. (C++ 기본 정렬 알고리즘, std::sort) 모든 상황에서 시간 복잡도 : O(nlogn), 공간 복잡도는 O(logn)이며, inplace, not stable한 알고리즘이다. (in-place란, 보조 데이터 구조를 사용하지 않고, 작동하는 알고리즘) Quick Sort로 시작해서, Recursion max-depth (log(len(array)) 에 도달하면 Heap Sort로 정렬하고, 그리고, 파티션 ..
-
V language : Insertion Sort컴퓨터/V language 2020. 8. 19. 14:25
Insertion Sort 1. 문법 살펴보기 (syntax) 우선 Go언어와 같이 V언어도 while이 없고, for을 사용한다. for i range(1, len(array)) key := array[i] mut j := i - 1 for j >= 0 && key < array[j] { array[j + 1] = array[j] j-- } array[j + 1] = key } // println('${array[i]}') } Github 풀 소스 참고
-
V langauge : Bubble Sort컴퓨터/V language 2020. 8. 18. 22:06
Bubble Sort 1. 문법 소개 For in range 파이썬에서 5번 Hello World를 출력하려면 아래와 같은데, # Python for _ in range(5): print('Hello World') V 언어에서는 range를 .. 으로 표시한다. // V for _ in 0..5 { println('Hello World') } String println println('${array[i]}') // 배열 array[i]를 출력하려면 println($test_arr) // test_arr를 출력하려면 2. Bubble Sort fn main() { mut test_arr := [1, -1, 0, 5, 3, 10] bubble_sort(mut test_arr) println('Result :..
-
"V" 프로그래밍 언어 (vlang)컴퓨터/V language 2020. 8. 18. 12:37
V The V Programming Language Painless deployments and dependency management To build your project, no matter how big, all you need to do is run v . No more build environments, makefiles, headers, virtual environments, etc. You get a single statically linked binary that is guaranteed t vlang.io 1. 소개 V언어 특징 안정성 : no null, no globals, no undefined behavior, immutability by default C/C++ to V 변환 가능..