haskell 스크립트에 저장을 사용할 수 없습니다.

사용자 3402719

나는 haskell에 새로 왔고 Im은 Monopoly 게임을 코딩하려고 노력하고 있습니다. 아래는 매 턴마다 폰을 움직이는 코드입니다. 내 문제는 현재 위치를 올바르게 업데이트하기 위해 두 주사위의 이전 합계를 저장할 수 없다는 것입니다. 그러나 콘솔에서 저장 명령을 사용하면 완벽하게 작동하지만 스크립트에서는 구문 분석 오류가 잘못된 들여 쓰기 또는 일치하지 않는 대괄호가 있다고 말합니다. 또한 게임의 개념에 대한 몇 가지 조언을 환영합니다. 미리 감사드립니다

rollDice1 :: Int
rollDice1 = unsafePerformIO(getStdRandom (randomR (1,6)))
rollDice2 :: Int
rollDice2 = unsafePerformIO(getStdRandom (randomR (1,6)))

move :: Int
move = rollDice1 + rollDice2

let position = move
Carsten

다음은없이 다음과 같이 할 수있는 방법입니다 unsafePerformIO.

module Test where

import System.Random

rollDice :: IO Int
rollDice = randomRIO (1,6)

sumOfTwoDices :: IO Int
sumOfTwoDices = do
    dice1 <- rollDice
    dice2 <- rollDice
    return $ dice1+dice2

이것을 ghci에로드 한 다음 재생할 수 있어야합니다.

~/Temp $ ghci test.hs 
GHCi, version 7.10.1: http://www.haskell.org/ghc/  :? for help
[1 of 1] Compiling Test             ( test.hs, interpreted )
Ok, modules loaded: Test.
*Test> sumOfTwoDices
3

설명

이제 모든 계산이 IO 내부에있는 것을 볼 수 있으므로 그에 따라 반환 유형을 변경해야합니다.

sumOfTwoDices 용도

  • do구문
  • 다음 주사위를하고 밖으로 값을 끌어 IO Int와 값 dice1 <-...
  • 이것을 위해 다시한다 dice2
  • 두 개의 간단한 Int값을 추가합니다.dice1 + dice2
  • 다음에 다시 랩 IOreturn(당신이 같은 언어에서 알고있을 게 아니에요 C / C ++ , 자바 , ...)

$그냥 날 쓰기에 게으른되고있다 return (dice1+dice2))

이제 당신이 원하는 경우에 당신은 당신의 전체 게임 내부를 쓸 수 있습니다 IO(그리고 다른 어떤 언어를 사용하여 거의 것) 하지만 당신이 원하지 않는이 - 당신은 당신이 수없이 많이 수행 할 IO만 할 때 마지막으로 필요로 돌아가 랜덤 오지에 - 그러나 이것은 단지 훨씬이다는 하나의 대답에 넣어 :(

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

스크립트에서 설치된 모듈을 사용할 수 없습니다.

분류에서Dev

Google Apps 스크립트에서 fetchURL ()을 사용할 수 없습니다.

분류에서Dev

컨텍스트 PHP 스크립트 작성에서 함수 반환 값을 사용할 수 없습니다.

분류에서Dev

bash 스크립트에서 echo를 사용하여 새 줄을 사용할 수 없습니다.

분류에서Dev

Office 스크립트 오류-속성을 사용할 수 없습니다.

분류에서Dev

cron을 사용하여 PHP 스크립트를 실행할 수 없습니다.

분류에서Dev

스크립트를 사용하여 파일을 삭제할 수 없습니다.

분류에서Dev

외부 자바 스크립트 .js 파일을 사용할 수 없습니다.

분류에서Dev

crontab을 사용하여 Python 스크립트를 실행할 수 없습니다.

분류에서Dev

심층 자바 스크립트 기능을 사용할 수 없습니다.

분류에서Dev

함수에 대한 자바 스크립트 호출을 사용할 수 없습니다.

분류에서Dev

AutoHotKey 스크립트에 파일을 저장할 수 있습니까?

분류에서Dev

laravel에서 ajax를 사용하여 값을 저장할 수 없습니다.

분류에서Dev

개인 저장소에서 GitKraken을 사용할 수 없습니다.

분류에서Dev

git svn을 사용하여 SVN 저장소에 푸시 할 수 없습니다.

분류에서Dev

별칭을 바로 위에 정의해도 스크립트에서 사용할 수 없습니다!

분류에서Dev

NixOS에서 swanctl로 시작된 스크립트에서`sysctl`을 사용할 수 없습니다.

분류에서Dev

편집기 스크립트의 변수를 저장할 수 없습니다.

분류에서Dev

Swift Firebase는 사전에 값을 저장할 수 없습니다.

분류에서Dev

자바 스크립트 코드로 버킷에 저장된 이미지에 액세스 할 수 없습니다.

분류에서Dev

자바 스크립트를 사용하여 Google 설문지에 입력 값을 설정할 수 없습니다.

분류에서Dev

01,02,03 값을 가진 쉘 스크립트에서 for 루프를 사용할 수 없습니다.

분류에서Dev

Google지도 스크립트 태그에서 콜백을 사용할 수 없습니다.

분류에서Dev

스크린 샷을 저장할 수 없습니다.

분류에서Dev

다른 스크립트 파일 내에서 스크립트 파일을로드 할 수 없습니다.

분류에서Dev

다른 스크립트 파일 내에서 스크립트 파일을로드 할 수 없습니다.

분류에서Dev

Python (Tkinter) : .get ()을 사용하여 사용자 입력을 변수에 저장할 수 없습니다.

분류에서Dev

내 SQL 스크립트에 어떤 문제가 있습니까? 타임 스탬프의 현재 시간을 저장할 수 없습니다.

분류에서Dev

android-텍스트 파일을 저장할 수 없습니다.

Related 관련 기사

  1. 1

    스크립트에서 설치된 모듈을 사용할 수 없습니다.

  2. 2

    Google Apps 스크립트에서 fetchURL ()을 사용할 수 없습니다.

  3. 3

    컨텍스트 PHP 스크립트 작성에서 함수 반환 값을 사용할 수 없습니다.

  4. 4

    bash 스크립트에서 echo를 사용하여 새 줄을 사용할 수 없습니다.

  5. 5

    Office 스크립트 오류-속성을 사용할 수 없습니다.

  6. 6

    cron을 사용하여 PHP 스크립트를 실행할 수 없습니다.

  7. 7

    스크립트를 사용하여 파일을 삭제할 수 없습니다.

  8. 8

    외부 자바 스크립트 .js 파일을 사용할 수 없습니다.

  9. 9

    crontab을 사용하여 Python 스크립트를 실행할 수 없습니다.

  10. 10

    심층 자바 스크립트 기능을 사용할 수 없습니다.

  11. 11

    함수에 대한 자바 스크립트 호출을 사용할 수 없습니다.

  12. 12

    AutoHotKey 스크립트에 파일을 저장할 수 있습니까?

  13. 13

    laravel에서 ajax를 사용하여 값을 저장할 수 없습니다.

  14. 14

    개인 저장소에서 GitKraken을 사용할 수 없습니다.

  15. 15

    git svn을 사용하여 SVN 저장소에 푸시 할 수 없습니다.

  16. 16

    별칭을 바로 위에 정의해도 스크립트에서 사용할 수 없습니다!

  17. 17

    NixOS에서 swanctl로 시작된 스크립트에서`sysctl`을 사용할 수 없습니다.

  18. 18

    편집기 스크립트의 변수를 저장할 수 없습니다.

  19. 19

    Swift Firebase는 사전에 값을 저장할 수 없습니다.

  20. 20

    자바 스크립트 코드로 버킷에 저장된 이미지에 액세스 할 수 없습니다.

  21. 21

    자바 스크립트를 사용하여 Google 설문지에 입력 값을 설정할 수 없습니다.

  22. 22

    01,02,03 값을 가진 쉘 스크립트에서 for 루프를 사용할 수 없습니다.

  23. 23

    Google지도 스크립트 태그에서 콜백을 사용할 수 없습니다.

  24. 24

    스크린 샷을 저장할 수 없습니다.

  25. 25

    다른 스크립트 파일 내에서 스크립트 파일을로드 할 수 없습니다.

  26. 26

    다른 스크립트 파일 내에서 스크립트 파일을로드 할 수 없습니다.

  27. 27

    Python (Tkinter) : .get ()을 사용하여 사용자 입력을 변수에 저장할 수 없습니다.

  28. 28

    내 SQL 스크립트에 어떤 문제가 있습니까? 타임 스탬프의 현재 시간을 저장할 수 없습니다.

  29. 29

    android-텍스트 파일을 저장할 수 없습니다.

뜨겁다태그

보관