나는 비슷한 질문을 많이했고 Google을 몇 시간 동안 검색했지만 아무데도 갈 수 없습니다.네임 스페이스 또는 모듈 'Lab2'가 정의되어 있지 않습니다.
내 Program.fs 파일 및 탐색기 창에서 Tree.fs 파일에있는 내 이진 트리 모듈에 액세스하려고하는데 Tree.fs 파일을 Program.fs 파일 위에있는 것으로 옮겼습니다. 다른 비슷한 질문들도 있지만 이것은 나를 위해 일하지 않을 때까지입니다.
내 Tree.fs
namespace Lab2
type Elem = System.IComparable
type Tree = E | T of Tree * Elem * Tree
module BinaryTree =
let emptyTree = E
let rec add = function
| x, E -> T(E, x, E)
| x, T(a, y, b) when x < y -> T(add(x, a), y, b)
| x, T(a, y, b) when y < x -> T(a, y, add(x, b))
| _, s -> s
let rec addList = function
| [], T(a, y, b) -> T(a, y, b)
| x::xs, T(a, y, b) when x < y -> addList(xs, T(add(x, a), y, b))
| x::xs, T(a, y, b) when y < x -> addList(xs, T(a, y, add(x, b)))
| _, s -> s
let rec preorder = function
| T(a, y, b) when a <> E -> y::preorder a
| T(a, y, b) when b <> E -> y::preorder b
| _ -> []
let rec inorder = function
| T(a, y, b) when a <> E -> y::inorder a
| T(a, y, b) when b <> E -> y::inorder b
| _ -> []
let rec postorder = function
| T(a, y, b) when b <> E -> y::preorder b
| T(a, y, b) when a <> E -> y::preorder a
| _ -> []
let rec treeToString = function
| T(a, y, b) when a <> E -> "(node " + y.ToString() + treeToString a
| T(a, y, b) when b <> E -> y.ToString() + treeToString b + ")"
| _ -> "Empty"
내 Program.fs 내 파일 모두에서 LAB2 네임 스페이스를 사용하지 않는 시도하고 대신 모듈로 두 파일을 사용하여 한
module Lab2.Program
open Lab2.BinaryTree
let tree = addList([5; 2; 1; 6; 7], emptyTree);;
let inorder_tree = inorder(tree);;
let char_tree = addList(['e';'b';'a';'f';'g'], emptyTree);;
let inorder_char_tree = inorder(char_tree);;
let print = treeToString(char_tree);;
파일 파일 만 이것은 여전히 저에게 동일한 오류를줍니다.
나는, 오류가 나는 디버깅하는 것이이Program.fs(66,6): error FS0039: The namespace or module 'Lab2' is not defined
> val inorder_tree : Elem list = []
> val char_tree : Tree = E
> val inorder_char_tree : Elem list = []
> val print : string = "Empty"
과 같은 경우에만 오류가
let tree = addList([5; 2; 1; 6; 7], emptyTree);;
그래서 다음 줄에서 발생
디버깅하지 전까지 내 코드에는 파란색 또는 빨간색 선이 없다
감사합니다, 그것을 해결하는, F 번호에 새로운 메신저 그게 정말 도움이되었다 –