Programming 524

AI를 이용한 프로그래밍 언어 변환

요즘 ChatGPT, Gemini같은 LLM을 이용한 프로그래밍 언어 변환이 정말 편하다. 빠르게 아이디어를 Racket 등 표현력이 좋은 언어로 구현하고, 실행 속도가 느리니, Julia, Golang, C++ 등으로 변환시켜달라고 하면 잘 변환해준다. 일부 변환이 틀리게 되는 경우도 있는데, 그럴 때는 프로그래밍 지식을 이용해서 수정해야 한다. Golang 이상 속도 위주 언어는 개념 위주 언어(함수형 등)에서 한 줄에 되는 것이 여러 줄을 써야 하는 귀찮음이 있어서, 개념을 빠르게 구현할 때 번거로운 면이 있다. 그런데, 이제는 AI가 귀찮은 작업을 대신 해준다 예를 들어 이런 것이다.MNIST 숫자 예측을 이렇게 Racket으로 짜고:#lang racket(require racket/file)(r..

Programming 2025.06.01

(PowerShell) 1부터 10까지 더하기

# for 사용$sum=0for ($i=1; $i -le 10; $i++) { $sum+=$i}$sum# Measure-Object 사용(1..10|Measure-Object -Sum).Sum 참고:Measure-Object (Microsoft.PowerShell.Utility) - PowerShell | Microsoft Learn Measure-Object (Microsoft.PowerShell.Utility) - PowerShellcmdlet은 Measure-Object 특정 유형의 개체의 속성 값을 계산합니다. Measure-Object 는 명령의 매개 변수에 따라 세 가지 유형의 측정을 수행합니다. cmdlet은 Measure-Object 개체의 속성 값에 대한 계산을 수행learn.mic..

Programming 2025.01.19

(PowerShell) 로또 번호 생성

1..45|get-random -count 6정렬도 하면:1..45|get-random -count 6|sort 참고: Get-Random (Microsoft.PowerShell.Utility) - PowerShell | Microsoft Learn Get-Random (Microsoft.PowerShell.Utility) - PowerShellcmdlet은 Get-Random 임의로 선택된 숫자를 가져옵니다. 개체 Get-Random컬렉션을 제출하는 경우 컬렉션에서 하나 이상의 임의로 선택된 개체를 가져옵니다. 매개 변수나 입력 Get-Random 이 없으면 명령은learn.microsoft.com

Programming 2025.01.17

(Clojure) 매크로에 대한 고찰

Common Lisp는 unhygienic macro이어서, symbol 겹침을 방지하려면 gensym을 사용해야 한다. 그런데 매크로 정의도 코드이므로 유연성이 높다. Racket은 기본적으로 hygienic macro인데, 패턴 방식이라 만들기는 쉬운데 유연성은 낮다.defmacro를 제공하기는 한다. Clojure는 Common Lisp 방식인데 auto-gensym이라는 것이 있다. 매크로 정의 안에서 #으로 끝나는 변수는 gensym된 변수가 된다. 미리 let으로 gensym해서 만들어 놓을 필요가 없다. 그런데 auto-gensym은 defmacro 컴파일 시간에 미리 gensym하는 거라서 Common Lisp처럼 매크로 확장시마다 let으로 gensym하는 것과는 의미가 다르다. 참고: ..

Programming 2025.01.07

CodeConvert 소개

google에서 convert go to rust 라고 치면 맨 위에 나오는 사이트이다. URL: Free Code Converter CodeConvert AI - Convert code with a click of a button Convert from ActionScript www.codeconvert.ai AI를 이용해서 프로그램 소스 코드를 다른 프로그래밍 언어로 변환해준다. 지원하는 언어는 C, C++, Common Lisp, Go, Rust, Racket, Java 등 다양하다. 예제로 MNIST를 Go에서 Rust로 변환해봤는데, csv 파일 읽는 공통 부분을 함수로 빼냈다! 대단하다. let (answer, data) = (&line[0], &line[1..]); 부분도 원래 없는 answ..

Programming 2024.04.20