код на F#(dotnet core 3.1.100 LTS) open System [< EntryPoint >] let main argv = let r = seq { 0L .. ( 1000000L - 1L ) } |> Seq . reduce (+) printfn "Result is %d" r exit 0 код на Clojure (OpenJDK Runtime Environment GraalVM CE 19.3.0.2) ( ns c1.core ( :gen-class )) ( defn -main "I don't do a whole lot ... yet." [& args] ( time ( let [r ( reduce + ( range 0 1000000 )) ] ( println ( str "Result is " r ))))) Результат оказался следующим: F#: time ./f1 Result is 1783293664 real 0m0,691s user 0m0,226s sys 0m0,056s Clojure: time java -jar /home/noname/Documents/c1/target/uberjar/c1-0.1.0-SNAPSHOT-standalone.jar Result is 499999500000 "Elapsed time: 1365.29806 msecs" real 0m27,731s user 0m6,690s sys 0m0,792s Как видим, неприятным последствием использования jvm является очень медленная загруз...
t.me/perfect0sight