하스켈에서는 read "(1,2)"
을 쓰고 튜플 (1,2)
을 다시 얻을 수 있습니다. Scala에서 이것을 수행 할 수있는 방법이 있습니까? 내가 찾고있는 것은 scala
인터프리터에서 파서에 액세스하는 것입니다.스칼라에는 Haskell의 Prelude.read와 동일한 기능이 있습니까?
2
A
답변
11
scala.tools.nsc에서 주위를 둘러 보려고 했습니까?
당신이 필요로하는 것 (또는 적어도 좋은 출발점)과 같은 것이 있습니까?
scala> val interpreter = new tools.nsc.Interpreter
interpreter: scala.tools.nsc.Interpreter = [email protected]
scala> interpreter interpret "(3, 5)"
res0: (Int, Int) = (3,5)
res139: scala.tools.nsc.InterpreterResults.Result = Success
scala> interpreter interpret "1 to 10 toList"
res1: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
res140: scala.tools.nsc.InterpreterResults.Result = Success
[편집 : tools.nsc.Interpreter가 더 이상 사용되지 않는 것 같습니다. 이제는 tools.nsc.interpreter 패키지가 있습니다.]
1
Scala 컴파일러 API에 관심이있을 수 있습니다. 소스를 컴파일하고 실행해야 할 수도 있습니다. 이것은 스칼라 인터프리터에서 어떻게 수행되는지 AFAIK입니다.
이러한 문제를 기억- 이 느려질 수 있습니다.
- 멀티 스레딩 응용 프로그램에서 병목 현상이 될 수 있습니다. AFAIK 클래스를로드하려면 JIT 등으로 인해 동기화가 필요합니다.
- 안전하지 않을 수 있습니다. JVM 보안 제한 설정에 관심이있을 수 있습니다.
스칼라 컴파일러 (as in this thread)에 대한 정보가 있지만 오래된 될 수있다 : 당신은 자세한 정보가 필요하면, 당신은 아마 소스를 다운로드하고 scaladoc을 생성해야합니다.
나는 그것을 사용하려는 동기가 없지만 스칼라가 필요하지 않다면 JSR 223: Scripting for the Java™ Platform API에도 관심이있을 수 있습니다.
데이터 구조 만로드하려는 경우 다른 방법을 고려해야합니다. download from Maven 또는 directly download 수있는 JSON 라이브러리를 들어 올리십시오. 라이브러리를 사용하면 사례 클래스를 직렬화/비 직렬화 할 수 있습니다.
관련 문제
- 1. OSX에서 DBus와 동일한 기능이 있습니까?
- 2. Perl을위한 Sonar와 동일한 기능이 있습니까?
- 3. Windows에 XEmbed와 동일한 기능이 있습니까?
- 4. Mac에서 -applicationDidReceiveMemoryWarning과 동일한 기능이 있습니까?
- 5. 모노에는 ILDASM과 동일한 기능이 있습니까?
- 6. powershell에는 popen과 동일한 기능이 있습니까?
- 7. Windows에 cron과 동일한 기능이 있습니까?
- 8. vbscript에 자바의 HashSet과 동일한 기능이 있습니까?
- 9. ActionScript에 "코어 덤프"와 동일한 기능이 있습니까?
- 10. Mercurial에는 git clean과 동일한 기능이 있습니까?
- 11. ASP.NET에는 VB의 InputBox 함수와 동일한 기능이 있습니까?
- 12. cdb/windbg에 autoexp.dat와 동일한 기능이 있습니까?
- 13. SparkViewEngine : PHP Include와 동일한 기능이 있습니까?
- 14. JPA에 Hibernate SQLQuery.addScalar()와 동일한 기능이 있습니까?
- 15. Java에서 .NET의 System.Text.Encoding과 동일한 기능이 있습니까?
- 16. 아이폰 개발자를위한 D3DXMatrixRotationYawPitchRoll()과 동일한 기능이 있습니까?
- 17. R의 Stata의 "logistic"과 동일한 기능이 있습니까?
- 18. Java의 BufferedImage에 대해 MapRGB와 동일한 기능이 있습니까?
- 19. Boost :: Python for Java와 동일한 기능이 있습니까?
- 20. C#에서 Groovy와 동일한 기능이 있습니까?
- 21. Mac에서 파이썬의 os.remove()와 동일한 기능이 있습니까?
- 22. PHP에서 Url.Content()와 동일한 기능이 있습니까?
- 23. Mercurial 용 svnlook tree와 동일한 기능이 있습니까?
- 24. 팀 빌드 2010에 CustomizableOutDir과 동일한 기능이 있습니까?
- 25. 블랙 베리에 notifydestroyed()와 동일한 기능이 있습니까?
- 26. SQLite에 MySQL의 바이너리와 직접적으로 동일한 기능이 있습니까?
- 27. MS-SQL에서 SHA1()과 동일한 기능이 있습니까?
- 28. 기본 mysql_free_result에 대해 Kohana와 동일한 기능이 있습니까?
- 29. .Net 용 JavaBlackBelt와 동일한 기능이 있습니까?
- 30. Crystal Reports에 마스터 페이지와 동일한 기능이 있습니까?
그게 완벽합니다 - 고마워요! – Bill
'eval'도보십시오. 형식을 제공해야하지만식이 끝나는 형식을 반환하기 때문에 특히 유용합니다. –