clojure 2026-09-29

There's no dedicated channel, so I'll try my luck here: I'm experimenting with Clay notebooks as a replacement for Clerk notebooks. One thing I noticed is that the Clay's produced .html page uses ligatures in code (e.g. for ->> and <=). Is there a (simple/easy) way to disable ligatures?

People behind Clay usually hang out on Zulip: https://github.com/scicloj/clay#discussion

You might also try your luck in #C0BQDEJ8M. I myself would probably simply check where the ligatures come from. If it's just font, then there is almost certainly a way to override that font - either via some config or via custom CSS.

👍 1

Thanks, I'll ask in that channel if there's something more direct than a custom CSS.

If it isn't too much effort, let us know in #C035GRLJEP8 what sent you away 🙏

@jackrusher I already did.... Relative links being broken between local and published version (https://clojurians.slack.com/archives/C035GRLJEP8/p1764912357481219), problems with the links on the same domain (https://clojurians.slack.com/archives/C035GRLJEP8/p1765989977923969) and some other (un)related problems to those two (https://clojurians.slack.com/archives/C035GRLJEP8/p1778593191789279).

🙏 1

i'm pretty good at writing java in clojure, but i played with a kotlin library last night, and kotlin has a lot of cool features that are surprisingly tough to translate to clojure. does anyone have advice or helper functions/macros? i'm speaking of features like "default args in functions require specifying nil for skipped items and supplying a trailing bitmask of the nil arguments"

I'm Kotlin-curious: can you provide code examples to illustrate the pain points?

(i'm at work so i can't pull up my personal code at the moment.)

i'm trying to write a little bluesky bot in clojure, so i'm using this kotlin library. this is a "data class", basically a POJO but in kotlin. the constructor has default parameters (if you don't supply text, it will default to "").

Can you just call it with nil in those seven (eight?) slots?

I guess I'm not sure what "supplying a trailing bitmask" even means...

this is implemented in java as two constructors: 1. a normal constructor that expects a non-null auth, non-null text, and then nullable rest of the args, so to call it, you can say foo = new FeedPostRequest(auth, "hello world", null, null, null, null, null, null, null). 2. and a "magic" second constructor that's used by kotlin that includes 2 additional args, a bitmask for which args are nil, and an extraneous arg to make sure it doesn't clash with other stuff (idk why this part is included). if you use this one, you have to supply a bitmask where each bit corresponds to that parameter's position and 1s indicate null: foo = new FeedPostRequest(auth, null, null, null, null, null, null, null, null, 0b111111110, null). this will actually substitute the null values for their defaults as written in the kotlin code

in that code, i've put null for the text argument, and the bitmask'd constructor will then substitute text = "" for me

it's kotlin's version of {:keys [text] :or {text ""}}, right?

to use these in clojure, i either have to just supply all of the args myself every time (repeating the default values myself) or construct the bitmask to get the value of the defaults

there's other features, but this is the one i was "having fun" wrestling with last night lol

ah, the second magical constructor is a "synthetic construct"

yeah - that being said i think that metadata exists at runtime

I think there is a kotlin reflection api that can do it - now you got me curious

👀 1