2010-12-30 9 views
1

나는 외부 파일에서 단어를 읽고 해당 숫자로 변환 한 다음 값을 계산하는 프로그램을 만들고 있습니다 .. 단어 계산기 !! 나는 단어를 읽을 수 있었다. .. 편지로 변환 .. 지금 나는 두 가지 문제에 직면했다 : 1 - 나는 이전에 방정식을 읽고 결과를 인쇄하는 다른 프로그램을 썼다. 내가 같은 프로그램을 사용하려고 할 때 내가 방정식에 대한 결과가 그 파일에서 읽을 수 없다는 오류를 제공합니다 .. 예기치 않은 파일의 끝 .. 2 - 나는 다른 접근법을 시도 .. 내가 숫자를 읽고 다음을 사용하여 그것을 평가 방정식을 구성 읽을 때. . .. 그래서프롤로그 문자열 값

calculate([Word|Rest],X) :- 
    word_to_number(Word,Symbol), 
    concat(X,Symbol,NewX), 
    calculate(Rest,NewX), 
    Result is NewX, 
    print(Result), 

ERROR: is/2: Arguments are not sufficiently instantiated

이제 새로운 연쇄 식 문자열 내가 값 캔트 그것을 위해 .. 어떻게 문자열의 가치를 가질 수 있습니다 !! 내 방정식은 '2 + 1'예 ..

atom_to_term(atom,Term,[]). 

문자열이 용어입니다 .. 을 난에 용어를 보내와 대답이이 방정식을

감사

답변

5

확인 평가 함수 .. 다음 난 용어 인 새로운 값을 저장할 변수를 지정, 세번째 파라미터는 쓸모 .. 단지 빈 목록을 넣어 .. 결과가 ..

Term = 2+1 ... then Result is Term. Result is 3.

완료! 4 시간의 검색 후!