jank编程语言
The jank programming language

原始链接: https://jank-lang.org/

(def movies {:the-weather-man {:title "The Weather Man" :genres [:drama :comedy] :tomatometer 59} :nightcrawler {:title "Nightcrawler" :genres [:drama :crime :thriller] :tomatometer 95} :the-bourne-identity {:title "The Bourne Identity" :genres [:action :thriller] :tomatometer 84}}) (def genre->movie (reduce (fn [acc [id movie]] (let [{:keys [genres]} movie genre->this-movie (zipmap genres (repeat [id]))] (merge-with into acc genre->this-movie))) {} movies)) ; genre->movie is now a useful index. ; => {:drama [:the-weather-man :nightcrawler], :comedy [:the-weather-man], :crime [:nightcrawler], :thriller [:nightcrawler :the-bourne-identity], :action [:the-bourne-identity]} ; 我们可以通过流派查找所有电影。 (->> (genre->movie :thriller) (map movies) (sort-by :tomatometer)) ; => ({:title "The Bourne Identity", :genres [:action :thriller], :tomatometer 84} {:title "Nightcrawler", :genres [:drama :crime :thriller], :tomatometer 95})

Jeeye的一种新语言Jank的目标是将其编译到LLVM并提供无缝的C ++ Interop。 Jank目前正在开发和针对Alpha发布时,Jank保留了Clojure的关键功能,例如NREPL和动态重新定义,同时添加了JIT编译C ++代码的能力。 创作者解决了对“ jank”这个名称(其负面含义)的担忧,并解释了为什么它不是Clojure扩展(商标和未来功能)。他对静态键入,模式匹配和基于价值的错误开放,以改善代码可读性和工具。 讨论涵盖了潜在用途(嵌入C ++应用程序中),平台支持(计划已计划)以及诸如CLASP之类的现有项目。创建者确认“纯Clojure”代码将主要是有效的,主要区别是缺乏JVM Interop。还讨论了基准和错误报告,突出了该项目对开发人员经验和性能的关注。还提到了可能的基于空格的方言。
相关文章

原文
(def movies {:the-weather-man {:title "The Weather Man"
                               :genres [:drama :comedy]
                               :tomatometer 59}
             :nightcrawler {:title "Nightcrawler"
                            :genres [:drama :crime :thriller]
                            :tomatometer 95}
             :the-bourne-identity {:title "The Bourne Identity"
                                   :genres [:action :thriller]
                                   :tomatometer 84}})

(def genre->movie (reduce (fn [acc [id movie]]
                            (let [{:keys [genres]} movie
                                  genre->this-movie (zipmap genres (repeat [id]))]
                              (merge-with into acc genre->this-movie)))
                          {}
                          movies))

; genre->movie is now a useful index.
; =>
{:drama [:the-weather-man :nightcrawler],
 :comedy [:the-weather-man],
 :crime [:nightcrawler],
 :thriller [:nightcrawler :the-bourne-identity],
 :action [:the-bourne-identity]}

; We can look up all movies by genre.
(->> (genre->movie :thriller)
     (map movies)
     (sort-by :tomatometer))
; =>
({:title "The Bourne Identity",
  :genres [:action :thriller],
  :tomatometer 84}
 {:title "Nightcrawler",
  :genres [:drama :crime :thriller],
  :tomatometer 95})
联系我们 contact @ memedata.com