- My Exercise는 이것을 나에게 원래 코드로 제공했습니다.
- 그들은 자바 구현을 원했습니다.
- 나는 지금 나는 그것을 이해할 수 없게되었다고 생각했다.
- 어쨌든
을 모두 고정시키는 변수 "n"을 사용하는 지점이 있습니다. - 디버깅 할 수있는 것이 더 많지 않은 한 이것이 내 진짜 문제였습니다.
나는 내 마지막 다음 주 전에이 물건을 배우려고하고있다.Java로 ML 프로그램을 작성하려면 어떻게해야합니까? 중첩 된 함수 사용
fun f x y = let val a = x+1 fun g 0 = 0 | g n = let val a = x+y fun h 0 = 0 | h k = a+n+g(n-1) in h (n-1) end in if x = 0 then g y else a + g(f (x-1) y) end
이것은 시도한 프로그램입니다.
내가 구현해야하는 ML 코드의 원본 버전이 위에 있습니다. StackOverflow의 숙제에 도움을 요청
는public class f { static double k; static double x; static double y; static double a, a2; static double n; public static double fn(double x, double y) { a = x + 1; if(x == 0) g(y); return a + g(fn((x-1), y)); } public static double g(double n) { if(n == 0) return 0; a2 = (x + y); f.n = h(n-1); return f.n; } public static double h(double k) { if(k==0) return 0; else { k = a2 + n + g(n-1); return k; } } public static void main(String[] args) { /*double arg2[] = null; for (int i = 0; i < args.length; i++) { arg2[i] = Double.parseDouble(args[i]); }*/ fn(2,1); } }
-5
A
답변
2
아마 당신이 모든 downvotes을 가지고 이유입니다 민감한 주제이다. 질문자의 특정 기대에 대해서는 this guide을 참조하십시오.
- 먼저 문제를 직접 해결해보십시오. ✓
- 기존 구현의 특정 문제에 대해 문의하십시오. ✗
- 문제는 숙제라고 인정하십시오. ✓
- 학교 정책에 유의하십시오. ✗(나는 적어도 이것을 의심합니다.)
- 이해할 수없는 코드를 사용하지 마십시오. □ (잎을 볼 수 있습니다.)
이 어떻게 자바에서 ML 프로그램을 작성합니까?
너는하지 .... ML 프로그램을 작성하거나 Java 프로그램을 작성합니다.
ML 프로그램이 Java 코드에서 다소 비정형 인 중첩 범위를 사용하기 때문에이 ML 프로그램을 Java 프로그램으로 변환하는 것은 간단하지 않습니다. 이것은 운동의 목적을 위해 과장된 것 같습니다. 여기
은 몇 가지 제안은 다음과 같습니다정적 변수의 섹션 사용하지 마십시오
이static double k; static double x; static double y; static double a, a2; static double n;
그들은 ML의 lexical scoping에 매우 잘 일치하지 않는, 그리고 당신이 그들을 업데이트 위험을 잘못된 범위에서.
Java에서 람다 식의 렉시 컬 범위 지정을 사용할 수 있습니다. 이것은 Java에서는 관용적이지는 않지만 변환을보다 직접적으로 만들어줍니다.
추가 함수 인수를 사용하여 내부 함수에 외부 함수의 매개 변수를 전달할 수 있습니다. 예 : 함수
g
을 인수로 취하고h
은x
,y
및n
을 인수로 취하게하십시오.이러한 함수는 절대 반환 값에만 의존 할 수 있으므로 절대 범위 외부의 변수를 변경할 필요가 없습니다.
무엇을하려하십니까? 뭐가 문제 야? 질문 할 때 구체적이고 명확해야합니다. – progyammer
나는 프로그램이해야 할 일에 대해 잘 모르겠습니다. 나는 수업 중 하나에서 ML을 배우고 있는데, 이것은 나를 도울 것으로 생각되는 운동이지만 나를 혼란스럽게 만들고 있습니다. –
ML 프로그램을 Java로 작성한다는 것은 무엇을 의미합니까? ML 코드를 Java로 변환하려고합니까? – EJoshuaS