Clojure programming language discussion

453 readers
1 users here now

Clojure is a Lisp that targets JVM and JS runtimes

Finding information about Clojure

API Reference

Clojure Guides

Practice Problems

Interactive Problems

Clojure Videos

The Clojure Community

Clojure Books

Tools & Libraries

Clojure Editors

Web Platforms

founded 4 years ago
MODERATORS
51
52
 
 

Sai do Barroco, Vem pro meio do Rococó: Um Novo Olhar sobre a Programação Funcional

https://dev.to/andryl_/sai-do-barroco-vem-pro-meio-do-rococo-um-novo-olhar-sobre-a-programacao-funcional-1an2

Esses dias, estava codificando e escutando essa música, e no meio da música é feita havia a seguinte frase: "Sai do Barroco, vai pro meio do Rococó". Terminei o código e fui participar de algumas reuniões mundanas da vida de um engenheiro de...

#clojure #clj #cljs [email protected] @clojure

53
 
 

Writing the Worst Datalog Ever in 26loc

https://buttondown.com/tensegritics-curiosities/archive/writing-the-worst-datalog-ever-in-26loc/

Today to change from heavy interop and frameworks, let's do some light coding exercise and implement the most amateur datalog engine by taking any shortcut we see fit! Don't forget when we're not busy writing silly Datalog implementations, we are...

#clojure #clj #cljs [email protected] @clojure

54
55
 
 

Rama on Clojure’s terms, and the magic of continuation-passing style

https://blog.redplanetlabs.com/2024/10/10/rama-on-clojures-terms-and-the-magic-of-continuation-passing-style/

Rama is a platform with huge applicability, able to express all the computation and storage for a backend at any scale. Just like the UNIX philosophy of composing simple programs to do more complex tasks, Rama is based on simple building blocks...

#clojure #clj #cljs [email protected] @clojure

56
 
 

Last in Clojure

https://grishaev.me/clojure-last/

Chat GPT: No, the last function is not particularly expensive for vectors in Clojure. It runs in O(1) time because vectors in Clojure support efficient access to their last element. Meanwhile, Clojure:

#clojure #clj #cljs [email protected] @clojure

57
 
 

Deploying Machine Learning models in a Clojure-first environment

https://building.nubank.com.br/deploying-machine-learning-models-in-a-clojure-first-environment/

At Nubank, deploying machine learning models in a production environment built primarily on Clojure presents unique challenges and opportunities. This article explores the key topics around this subject, focusing on the technical aspects of...

#clojure #clj #cljs [email protected] @clojure

58
 
 

Removing effects from business logic

https://biffweb.com/p/removing-effects/

This is a thing (state machine? effects-processing pipeline?) I'm trying out to keep effectful code separate from business logic, to make testing easier. It's partially inspired by re-frame's event handling. The idea isn't new, but I'd never...

#clojure #clj #cljs [email protected] @clojure

59
 
 

Deed: a fast encoding and decoding library for Clojure

https://grishaev.me/clj-deed/

Table of Content About Motivation Installation & Requirements Quick Demo API Simple Encode and Decode Encoding to Memory Sequential Encoding and Decoding Low-Level API API Options GZipped...

#clojure #clj #cljs [email protected] @clojure

60
61
 
 

RocksDB indexes are done, open-sourcing Yakread next

https://biffweb.com/p/rocksdb-indexes-yakread/

Last time on Biff: The Newsletter: I've just barely started to re-implement the entire index feature by using RocksDB directly for the secondary indexes. RocksDB is a mutable KV store, so we can update documents in place without retaining the...

#clojure #clj #cljs [email protected] @clojure

62
 
 

Scaling Data Operations: When Spreadsheets and Legacy Systems No Longer Cut It

https://redefine.io/blog/when-spreadsheets-no-longer-cut-it/

Struggling to scale your data operations with spreadsheets and legacy systems? Learn how modern data platforms provide the scalability, real-time insights, and security businesses need to grow efficiently. Explore the limitations of outdated tools...

#clojure #clj #cljs [email protected] @clojure

63
 
 

Clojure Deref (Oct 3, 2024)

https://clojure.org/news/2024/10/03/deref

Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem (feed: RSS). Thanks to Anton Fonarev for link aggregation. Podcasts, videos, and media Maintainable Clojure code: Visualizing structure and quality...

#clojure #clj #cljs [email protected] @[email protected]

64
 
 

Breakout Game in ClojureDart

https://buttondown.com/tensegritics-curiosities/archive/game-tutorial-in-clojuredart/

This issue is about following the Flame’s Brick Breaker tutorial in ClojureDart. This was prompted by Ian Chow (who just released a CLJD app onto the stores) mentioning, en passant, he struggled to port this tutorial. We couldn’t let this slip, so...

#clojure #clj #cljs [email protected] @clojure

65
 
 

I've created a small library that allows to create mock functions. You can record the calls to the function and check arguments with it. It happened to me multiple times that somebody has changed the function that was mocked and it didn't comply with the values returned by mock or the function was called differenty in the code.

I recently added a support for instrumentation of mock functions with Malli schemas. If you declare a mock for a function that has Malli function schema, it will instrument the mock. This allows to discover mocks returning invalid values or accepting invalid arguments or the number of arguments.

Here's an example:

(require '[malli.core :as m])

(m/=> my-inc [:=> [:cat :int] :int])
(defn my-inc [x]
  (inc x))

;; You have to provide a symbol of function 
;; or with or without namespace (aliases are supported).
(def my-inc-mock (mock-fn 'my-inc 1))

(my-inc-mock 0)
;=> 1

(my-inc-mock "foo")
;=> An exception ::invalid-input

(def my-inc-mock2 (mock-fn 'my-inc nil))
(my-inc-mock2 1)
;=> An exception ::invalid-output

This instrumentation works also with a macro for defining mocks.

(with-mocks [my-inc 2]
  (my-inc "foo"))
;=> An exception ::invalid-input

(with-mocks [my-inc nil]
  (my-inc 1))
;=> An exception ::invalid-output
66
 
 

Holy Dev Newsletter September 2024

https://blog.jakubholy.net/2024/09-newsletter/

Welcome to the Holy Dev newsletter, which brings you gems I found on the web, updates from my blog, and a few scattered thoughts. You can get the next one into your mailbox if you subscribe.What is happeningI have been to Heart of Clojure in...

#clojure #clj #cljs [email protected] @clojure

67
 
 

Functional Programming Languages

https://ericnormand.me/functional-programming-languages

A list of the functional programming languages you can build a career on and use at work.

#clojure #clj #cljs [email protected] @clojure

68
 
 

Backwards Game of Life

http://pepijndevos.nl/2024/10/01/backwards-game-of-life.html

I got a litlte bit nerd sniped by the following video and decided to implement game of life in clojure.core.logic, because any logic program can be evaluated forwards and backwards. Without further ado here is my implementation: (ns...

#clojure #clj #cljs [email protected] @clojure

69
 
 

Migrating terabytes of data instantly (can your ALTER TABLE do this?)

https://blog.redplanetlabs.com/2024/09/30/migrating-terabytes-of-data-instantly-can-your-alter-table-do-this/

Every seasoned developer has been there: whether it’s an urgent requirement change from your business leader or a faulty assumption revealing itself after a production deployment, your data needs to change, and fast. Maybe a newly-passed tariff...

#clojure #clj #cljs [email protected] @clojure

70
71
 
 

Messages from our Sponsors (including jobs 🏢👨‍💻👩🏽‍💼💻)

https://gaiwan.co/blog/messages-from-our-sponsors-including-job-openings-2/

Hope everyone had a wonderful time at Heart of Clojure last week! After the pandemic shutdowns, it&aposs been so hard to find communities meeting in person, so I&aposm proud that we made Heart of Clojure happen for 250+ Clojure and functional...

#clojure #clj #cljs [email protected] @clojure

72
 
 

Generating multiplication tables with Clojure

https://clojure-diary.gitlab.io/2024/09/29/generating-multiplication-tables-with-clojure.html

Code (defn single-line [number multiplicant] (str number " X " multiplicant " = " (* number multiplicant))) ;; (def num 5) ;; (println ;; (clojure.string/join "\n" ;; (map single-line (repeat 10 5) (range 1...

#clojure #clj #cljs [email protected] @clojure

73
74
 
 

Clojure Deref (Sept 26, 2024)

https://clojure.org/news/2024/09/26/deref

Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem (feed: RSS). Thanks to Anton Fonarev for link aggregation. Podcasts, videos, and media Apropos 2024-09-24 - Apropos Clojure Did you know CoPilot...

#clojure #clj #cljs [email protected] @[email protected]

75
 
 

Heart of Clojure - An Indeterminate Consequential Conference

https://gaiwan.co/blog/heart-of-clojure-an-indeterminate-consequential-conference/

After coming back to Taiwan, a LinkedIn post written by a Clojurian who attended Heart of Clojure soon caught my eye.Perhaps it&aposs time for some small, new, and incredibly neat and performant Clojure-based consultancy to be born, hmm?It sounds...

#clojure #clj #cljs [email protected] @clojure

view more: ‹ prev next ›