홈>
2x2 축 (20 x 15)이 있습니다. 거기에서 두 원의 중심 위치를 계산하고 싶습니다. computeShapeBelow/2는 첫 번째가 두 번째 원 아래에 있고 물론 원의 가장자리가 내 X-Y 축 (20) 15 제한 내에 있어야하는 경우 두 원의 가능한 중심을 찾습니다. 오류가 발생합니다 :
callable' expected, found 2' (an integer)
. 오류와 아래 쿼리는 예상 원 구조 입력
[[circle, id], Radius, [X, Y]].
를 보여줍니다.
나는 여기에 OverOver에 대한 답변을 보았지만 해결책이 나이 오류가 발생하는 이유는 분명하지 않습니다. 또한 callable/1, call/1 및 call/2 사용에 대한 SWIPL 설명서는 너무 간단합니다.
:- use_module(library(clpfd)).
computeShapeBelow(Shape1,Shape2,Xcord1,Ycord1,Xcord2,Ycord2) :-
nth0(2,Shape1,Location1), nth0(2,Shape2,Location2),
nth0(1,Shape1,Dim1), nth0(1,Shape2,Dim2),
nth0(0,Location1,Xcord1), nth0(0,Location2,Xcord2),
nth0(1,Location1,Ycord1), nth0(1,Location2,Ycord2),
Xcord1 in 0..20, Xcord2 in 0..20,
Ycord1 in 0..15, Ycord2 in 0..15,
Ycord2 #> Ycord1+Dim1, Dim2.
?- computeShapeBelow([[circle1,1],4,[X1,Y1]],[[circle,2],2,[X2,Y2]], X1, Y1, X2,Y2).
ERROR: Type error: `callable' expected, found `2' (an integer)
ERROR: In:
ERROR: [8] computeShapeBelow([[circle1|...],4|...],[[circle|...],2|...])
ERROR: [7] <user>
- 답변 # 1
관련 자료
- asynchronous - Rust 예상 유형 발견 구조체
- python - typeerror - range () 정수 끝 인수가 필요합니다 int가 있습니다
- java - 해결 방법 - 배열 유형이 필요합니다 int? 목록이 아닌 배열을 사용하여 거품 정렬
- xquery - 바꾸기 기능은 항목 예상 순서를 찾았습니다
- generics - 녹 - 예상되는 유형 매개 변수, 발견 된 구조체
- r - scan (file = file, what = what, sep = sep, quote = quote, dec = dec, - scan ()에서 '정수'가 필요합니다 '*'
- json - Dictionary 를 디코딩 할 것으로 예상했지만 대신 숫자를 찾았습니다
- reactjs - rootInstancefindByType ("입력");1을 제공했지만 노드 유형이 "정의되지 않은"2 개의 인스턴스를 찾았습니다
- rust - 예상` - `, 어떻게 찾은 키워드`self`를 해결하는 방법?
- java - 적합한 Bean이없고 예상되는 단일 일치 Bean이 있지만 2가 있습니다
- 파이썬 3 에서이 간단한 정수 나누기가 왜 예상보다 적은 답을 제공합니까?
- selenium webdriver - javalangassertionerror - 예상 값이 일치하지 않으며 발견되었습니다
- oracle - PL-SQL에서 예상 한 위치에서 키워드를 찾을 수 없음
- function : 클로저 : 예상되는 u32 발견 유형 매개 변수
- angular - 하나의 일치하는 요청이 있고 두 요청이 발견되었습니다 요청 2 개를 테스트하는 방법
- php - Symfony"integer 또는 null"유형의 예상 인수
- ruby on rails - yamlparserparsererror - ''이 필요하지만 ''이 있습니다
- vuejs2 : Vuejs 경고 예상 부울 발견 문자열
- python - 'typeerror - 정수 인수가 필요합니다 float가 있습니다'
- python - valueerror - min_ndim = 3 예상, ndim = 2 발견
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- JavaScript 변수를 HTML div에 '출력'하는 방법
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 화면에서 찾은 요소를 찾을 수없는 경우 셀레늄
아마도 오타 일거야.
와이즈 비즈 그러나 일반적인 스타일 노트로서 CLP (FD) 구조와 nth0/3와 같은 전통적인 프롤로그 구조와 혼합하는 것에주의하십시오. 내 경험상 문제를 디버깅 할 때 CLP (FD)에는매우다른 사고 방식이 필요합니다. 변수의 인스턴스화 상태가 알려질 때까지 실행이 지연되고 변수를 '터치'해야하기 때문입니다 ( 예를 들어 findall/3로 수집하면 예기치 않은 결과가 발생할 수 있습니다.Dim2
여기문제에 CLP (FD)가 필요하지 않지만 무차별 대입으로 충분하다면
대신/3 사이에서 사용하는 것이 더 쉽습니다. 예를 들어일 수있다
between(0,20,Xcord1),