Egloos | Log-in


하스켈켈

hmatrix라는 괜찮은 매트릭스 툴을 발견해서
뜬금없이 하스켈을 조금 들여다보고 있다.
그런데 gnuplot을 사용한 플로팅이 비슫하에서 자꾸 깨지길래
이걸 고치려고 뚝딱뚝딱하다 보니 다음과 같은 프로시져가 필요하게 되었다.

1. 특정 스트링을 랜덤한 이름을 가진 파일에 저장한다.
2. 시스템 콜을로 다른 프로그램을 실행시켜 이 파일을 넘겨준다.
3. 이 파일을 지운다.

저녁먹고 한참을 붙들고 있다가
겨우 bracket이라는 괴상한 함수를 써서 겨우 할 수 있게 되었다.
암튼 요는 도대체 C에서의 rand()같이 부르면 제깍제깍 아무 숫자나 던져주고 사라지는
그런 편리한 함수가 없다는 것인데
이것은 아마도 하스켈이 lazy evaluation을 하기 때문으로
랜덤함수를 부르면 이 랜덤넘버를 어떻게 불러올 것인지 역시
정해주지 않으면 안되는 것이다.
보통은 랜덤넘버를 부를 때는 시드를 적당히 cpu time으로 맞춰서 콜을 하면
이 시점이 또 랜덤하기 때문에 엄밀하진 않지만 적당히 랜덤하다고 믿을 만 하다고 생각한다.
그런데 하스켈 랜덤 라이브러리를 아무리 뒤져도 fixed seed 케이스만 나와있지
이런 식으로 줄줄이 콜을 하는 방법은 IO 모나드를 붙여 보내는 randomIO 함수 정도밖에 없다.
이러면 정말 곤란한데... -_-;;;
이리 메치고 저리 메치면 방법이 있을지도 모르겠지만 머...
암튼 곤란하다. 하스켈...


by 세리자와 | 2009/01/04 03:43 | 빨리만들기 | 트랙백 | 핑백(1) | 덧글(2)

트랙백 주소 : http://serizawa.egloos.com/tb/1856028
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Linked at 하스켈에서 의사 난수 만들기 .. at 2009/01/04 19:59

... k to top 하스켈에서 의사 난수 만들기 Posted in 전산일기 by kane on the January 4, 2009 Tags: 하스켈, 의사 난수 하스켈에서 의사 난수 만들기가 어렵다는 말이 있어 찾아봤다. 역시 내 기대를 저버리지 않았고, 간단하게 만드는 방법을 찾았다. 찾은 방법을 소개하기 전에 일반적으로 프로그래밍할 때 의사 난수 만드 ... more

Commented by 아이추판다 at 2009/01/04 17:34
random number를 만드는 함수를 C에서 FFI로 불러들이면서 자료형을 IO CInt가 아니라 CInt로 지정 해주는 꼼수가 있습니다. 근데 굳이 모나드를 안쓰시려는 이유라도 있으신지요?
Commented by 세리자와 at 2009/01/05 05:00
제가 잘 몰라서 그렇겠지만 받은 숫자로 계산을 하려니 자꾸 타입에러가 나서요.
기본적으로 잘 이해를 못하고 있다는 생각이 듭니다.

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶