我是 Haskell 的新手,写了这个程序来练习函数式编程。我不知道它是否是一个好程序,除了两件事。
next_step :: Integer -> Integer
collatz :: Integer -> String
next_step n = do
if (n `mod` 2) == 0 then
n `div` 2
else
(n * 3) + 1
collatz 1 = "1"
collatz n = (show n) ++ " -> " ++ (show (collatz (next_step n)))
main = putStrLn (collatz 6)
Run Code Online (Sandbox Code Playgroud)
输出:
6 -> "3 -> \"10 -> \\\"5 -> \\\\\\\"16 -> \\\\\\\\\\\\\\\"8 -> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"4 -> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"2 …Run Code Online (Sandbox Code Playgroud) 我一直在尝试使用我的项目中调用的 jar PasswordHash.jar。我正在使用sbt,所以我把罐子放进去lib/。现在它在类路径中,但我不知道这意味着什么。
我试过了:
import PasswordHashimport PasswordHash.jarimport com.PasswordHashimport com.PasswordHash.jarimport org.PasswordHashimport org.PasswordHash.jarimport java.PasswordHashimport java.PasswordHash.jarimport jar.PasswordHash该 jar 是从一个没有package声明的 Java 文件构建的。
编辑:
斯卡拉文件:
~/FileShare/shared/src/main/scala/com/michael/fileshare/shared/Collatz.scala
package com.michael.fileshare.shared
import com.michael.fileshare.shared.PasswordHash
Run Code Online (Sandbox Code Playgroud)
Java文件:
~/FileShare/shared/src/main/java/com/michael/fileshare/shared/PasswordHash.java
package com.michael.fileshare.shared
Run Code Online (Sandbox Code Playgroud)
错误信息:
object PasswordHash is not a member of package com.michael.fileshare.shared
Scala 文件尝试导入 Java 文件失败,但另一个 Scala 文件成功导入此 Scala 文件。
如果有帮助的话,我会关注 Ubuntu。