Haskell에서 외부 모듈을 사용하고 싶을 때 (모듈 import 및 패키지 install)
9020 단어 하스켈
모듈명과 패키지명
Haskell에서 외부 모듈을 사용하려면 import
에서 모듈 이름을 선언하십시오.
import.hsimport System.Random
Data.Char
와 같은 대표적인 몇개의 모듈은, 환경 구축시에 미리 로컬 환경에 도입되고 있으므로 import
하는 것만으로, 곧 사용할 수 있게 된다.
그러나 로컬 환경에 도입되지 않은 패키지를 사용하려면 import
전에 install
가 필요합니다.
이 때 install
명령에 지정해야하는 것은 모듈 이름이 아닌 패키지 이름입니다.
예를 들어, 난수를 취급하는 모듈의 명칭은 System.Random
이지만, 패키지의 명칭은 random
이므로, install
때는 random
를 지정할 필요가 있다.
install.hs> :t random
<interactive>:1:1: error: Variable not in scope: random
-- random関数を使いたい。が、そんなものはないと言われる
> :m System.Random
<no location info>: error:
Could not find module ‘System.Random’
It is not a module in the current program, or in any known package.
-- random関数の含まれるSystem.Randomモジュールをimportしようとしたが知らないと言われてしまう
> stack install random
random> configure
random> Configuring random-1.1...
random> build
random> Building random-1.1...
random> Preprocessing library random-1.1...
random> [1 of 1] Compiling System.Random ( System\Random.hs, .stack-work\dist\ca59d0ab\build\System\Random.o )
random>
random> C:\Users\xx\AppData\Local\Temp\stack3120\random-1.1\System\Random.hs:43:1: warning: [-Wtabs]
random> Tab character found here, and in 74 further locations.
random> Please use spaces instead.
random> copy/register
random> Installing library in
random> C:\sr\snapshots\47914953\lib\x86_64-windows-ghc-8.0.2\random-1.1-9tceXaeYIMZ4JrKq20Egog
random> Registering random-1.1...
-- パッケージ名randomを指定してinstall
> :m System.Random
> :t random
random :: (RandomGen g, Random a) => g -> (a, g)
-- random関数が使えるようになった
Haskell을 시작한 후 잠시 이거 모르고 고생했다. (뭐라고 해도, 이것을 모르면 난수조차 사용할 수 없다)
모듈과 패키지의 관계는 이런 식으로 확인할 수 있다.
사용하고 싶은 함수명 등으로부터 패키지명을 조사한다
지금 사용하고 싶은 난수를 생성하는 함수 random
를 Hoogle 등으로 검색하고
모듈 문서로 전환합니다. 이번에는 System.Random
이다.
그 상부에 있는 둘러싸는 부분이 패키지명.
따라서 install
할 때는 cabal install random
가 되고 stack install random
로 한다.
패키지 이름에서 모듈 이름 확인
반대로 패키지 이름 문서에서 모듈 이름을 확인하려면 패키지 이름에서 패키지 문서로 유사하게 전환합니다 .
Modules
를 확인합니다.
Reference
이 문제에 관하여(Haskell에서 외부 모듈을 사용하고 싶을 때 (모듈 import 및 패키지 install)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TTsurutani/items/b68956a555747fc3cb0e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import System.Random
> :t random
<interactive>:1:1: error: Variable not in scope: random
-- random関数を使いたい。が、そんなものはないと言われる
> :m System.Random
<no location info>: error:
Could not find module ‘System.Random’
It is not a module in the current program, or in any known package.
-- random関数の含まれるSystem.Randomモジュールをimportしようとしたが知らないと言われてしまう
> stack install random
random> configure
random> Configuring random-1.1...
random> build
random> Building random-1.1...
random> Preprocessing library random-1.1...
random> [1 of 1] Compiling System.Random ( System\Random.hs, .stack-work\dist\ca59d0ab\build\System\Random.o )
random>
random> C:\Users\xx\AppData\Local\Temp\stack3120\random-1.1\System\Random.hs:43:1: warning: [-Wtabs]
random> Tab character found here, and in 74 further locations.
random> Please use spaces instead.
random> copy/register
random> Installing library in
random> C:\sr\snapshots\47914953\lib\x86_64-windows-ghc-8.0.2\random-1.1-9tceXaeYIMZ4JrKq20Egog
random> Registering random-1.1...
-- パッケージ名randomを指定してinstall
> :m System.Random
> :t random
random :: (RandomGen g, Random a) => g -> (a, g)
-- random関数が使えるようになった
지금 사용하고 싶은 난수를 생성하는 함수
random
를 Hoogle 등으로 검색하고모듈 문서로 전환합니다. 이번에는
System.Random
이다.그 상부에 있는 둘러싸는 부분이 패키지명.
따라서
install
할 때는 cabal install random
가 되고 stack install random
로 한다.패키지 이름에서 모듈 이름 확인
반대로 패키지 이름 문서에서 모듈 이름을 확인하려면 패키지 이름에서 패키지 문서로 유사하게 전환합니다 .
Modules
를 확인합니다.
Reference
이 문제에 관하여(Haskell에서 외부 모듈을 사용하고 싶을 때 (모듈 import 및 패키지 install)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TTsurutani/items/b68956a555747fc3cb0e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Haskell에서 외부 모듈을 사용하고 싶을 때 (모듈 import 및 패키지 install)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TTsurutani/items/b68956a555747fc3cb0e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)