방금 하스켈을 배우기 시작했고, 첫 번째 코드를 작성하고 있습니다. 내가 여기서하고있는 것은 두 개의 인수를 취하는 함수를 작성하는 것이다. 각리스트의 길이는 n (nxn 격자를 형성 함) 인 정수 목록의 목록을 반환하며, 각 정수에는 값이있는 확률 p가 있습니다 (1 -p)는 비어 있습니다 (값 없음). 0 = 공백, 1 = 값 인코딩을 사용하고 싶습니다.임의의 패키지를 사용하여 결과를 haskell의 특정 값에 매핑하는 방법?
test :: Int -> Float -> [[Int]]
test n p = do
let values = round(n*n*p)
noValues = n*n - values
print values
print noValues
main = do
test 4 0.4
숫자 변수는 우리의 값을 가질 것이다 그리드의 요소 수를 제공하고 noValues 우리에게 비어 수를 줄 것이다. 자, 어떤 세포가 가치를 지니고 어떤 세포가 가치가 없을지를 어떻게 결정합니까? 내가 좋아하는 임의의 패키지 사용 계획이었다 : 나에게 값을 부동 목록을 제공
import System.Random
g <- getStdGen
take n (randoms g :: [Double])
을,하지만 난 내 문제에 이것을 적용 할 수있는 방법을 이해하지 않는, 즉, 방법으로 만들려면 목록을 나열한 다음 값을 0과 1로 매핑 할 수 있습니까?
test''의 유형 서명이 아주 잘못 보이는 같은 격자를 생성 할 수 있습니다. 내부에 무언가를 출력하므로'test'는'IO something'을 리턴해야합니다. 또한'[[Int]]'를 반환하지 않습니다. Haskell을 시작한다면, IO, 임의성, 모나드 및리스트를 포함하기 때문에이 연습은 너무 복잡 할 수 있습니다. 좀 더 간단하게 시작하는 것이 좋습니다. [LYAH] (http://learnyouahaskell.com/)를 따르려고합니다. – chi
@chi 이것은 실제로 숙제에 관한 질문입니다. 같은 수업을하는 사람들이 오늘 아침에 물었습니다 :) – alternative
@alternative 사실 나는 오늘 아침에도 그것을 요구했습니다. 그러나 나는 그 질문에 대해 더 의문의 여지가 있기 때문에 여기에 새로운 질문을 올리라고 충고 한 의견을 읽을 수 있습니다. :) –