2009년 01월 04일
하스켈켈
hmatrix라는 괜찮은 매트릭스 툴을 발견해서
뜬금없이 하스켈을 조금 들여다보고 있다.
그런데 gnuplot을 사용한 플로팅이 비슫하에서 자꾸 깨지길래
이걸 고치려고 뚝딱뚝딱하다 보니 다음과 같은 프로시져가 필요하게 되었다.
1. 특정 스트링을 랜덤한 이름을 가진 파일에 저장한다.
2. 시스템 콜을로 다른 프로그램을 실행시켜 이 파일을 넘겨준다.
3. 이 파일을 지운다.
저녁먹고 한참을 붙들고 있다가
겨우 bracket이라는 괴상한 함수를 써서 겨우 할 수 있게 되었다.
암튼 요는 도대체 C에서의 rand()같이 부르면 제깍제깍 아무 숫자나 던져주고 사라지는
그런 편리한 함수가 없다는 것인데
이것은 아마도 하스켈이 lazy evaluation을 하기 때문으로
랜덤함수를 부르면 이 랜덤넘버를 어떻게 불러올 것인지 역시
정해주지 않으면 안되는 것이다.
보통은 랜덤넘버를 부를 때는 시드를 적당히 cpu time으로 맞춰서 콜을 하면
이 시점이 또 랜덤하기 때문에 엄밀하진 않지만 적당히 랜덤하다고 믿을 만 하다고 생각한다.
그런데 하스켈 랜덤 라이브러리를 아무리 뒤져도 fixed seed 케이스만 나와있지
이런 식으로 줄줄이 콜을 하는 방법은 IO 모나드를 붙여 보내는 randomIO 함수 정도밖에 없다.
이러면 정말 곤란한데... -_-;;;
이리 메치고 저리 메치면 방법이 있을지도 모르겠지만 머...
암튼 곤란하다. 하스켈...
뜬금없이 하스켈을 조금 들여다보고 있다.
그런데 gnuplot을 사용한 플로팅이 비슫하에서 자꾸 깨지길래
이걸 고치려고 뚝딱뚝딱하다 보니 다음과 같은 프로시져가 필요하게 되었다.
1. 특정 스트링을 랜덤한 이름을 가진 파일에 저장한다.
2. 시스템 콜을로 다른 프로그램을 실행시켜 이 파일을 넘겨준다.
3. 이 파일을 지운다.
저녁먹고 한참을 붙들고 있다가
겨우 bracket이라는 괴상한 함수를 써서 겨우 할 수 있게 되었다.
암튼 요는 도대체 C에서의 rand()같이 부르면 제깍제깍 아무 숫자나 던져주고 사라지는
그런 편리한 함수가 없다는 것인데
이것은 아마도 하스켈이 lazy evaluation을 하기 때문으로
랜덤함수를 부르면 이 랜덤넘버를 어떻게 불러올 것인지 역시
정해주지 않으면 안되는 것이다.
보통은 랜덤넘버를 부를 때는 시드를 적당히 cpu time으로 맞춰서 콜을 하면
이 시점이 또 랜덤하기 때문에 엄밀하진 않지만 적당히 랜덤하다고 믿을 만 하다고 생각한다.
그런데 하스켈 랜덤 라이브러리를 아무리 뒤져도 fixed seed 케이스만 나와있지
이런 식으로 줄줄이 콜을 하는 방법은 IO 모나드를 붙여 보내는 randomIO 함수 정도밖에 없다.
이러면 정말 곤란한데... -_-;;;
이리 메치고 저리 메치면 방법이 있을지도 모르겠지만 머...
암튼 곤란하다. 하스켈...
# by | 2009/01/04 03:43 | 빨리만들기 | 트랙백 | 핑백(1) | 덧글(2)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
... k to top 하스켈에서 의사 난수 만들기 Posted in 전산일기 by kane on the January 4, 2009 Tags: 하스켈, 의사 난수 하스켈에서 의사 난수 만들기가 어렵다는 말이 있어 찾아봤다. 역시 내 기대를 저버리지 않았고, 간단하게 만드는 방법을 찾았다. 찾은 방법을 소개하기 전에 일반적으로 프로그래밍할 때 의사 난수 만드 ... more
기본적으로 잘 이해를 못하고 있다는 생각이 듭니다.