Hacker Newsnew | past | comments | ask | show | jobs | submit | jhhh's commentslogin

A benefit to using the currying style is that you can do work in the intermediate steps and use that later. It is not simply a 'cool' way to define functions. Imagine a logging framework:

  (log configuration identifier level format-string arg0 arg1 ... argN)
  
After each partial application step you can do more and more work narrowing the scope of what you return from subsequent functions.

  ;; Preprocessing the configuration is possible
  ;; Imagine all logging is turned off, now you can return a noop
  (partial log conf)
  ;; You can look up the identifier in the configuration to determine what the logger function should look like
  (partial log conf id)
  ;; You could return a noop function if the level is not enabled for the particular id
  (partial log config id level)
  ;; Pre-parsing the format string is now possible
  (partial log conf id level "%time - %id")
  
In many codebases I've seen a large amount of code is literally just to emulate this process with multiple classes, where you're performing work and then caching it somewhere. In simpler cases you can consolidate all of that in a function call and use partial application. Without some heroic work by the compiler you simply cannot do that in an imperative style.

This is a good point, but I think it's better to have to explicitly opt into currying with `partial`. Automatic currying can be confusing.

I asked gemini a few months ago if getopt shifts the argument list. It replied 'no, ...' with some detail and then asked at the end if I would like a code example. I replied simply 'yes'. It thought I was disagreeing with its original response and reiterated in BOLD that 'NO, the command getopt does not shift the argument list'.

Gemini by default will produce a bunch of fluff / junk towards the very end of its response text, and usually have a follow-up question for the user.

I usually skip reading that part altogether. I wonder if most users do, and the model's training set ended up with examples where it wouldn't pay attention to those tail ends


Google had a feature in gmail for a long time that automatically sorts your email into categories like Promotions, Social, Updates, Forums, etc. It was automated and fairly effective imo. If you try to disable the 'smart' features they will then disable this categorization retroactively and dump thousands of emails in your inbox and then nag you about turning it back on.


I’ve clearly had it turned off for years(?) and I’ve never had it nag about it.


Did the article intentionally start with a LLM cliche to filter out all the people who hate reading obviously generated content? I would say it worked.


I have been attempting to write a lot more with AI, but it's so gimmicky. It's always spitting lines like this: " it's not just about x – it's about y." like in this post. I find it so frustrating that no matter the prompt I throw at it, it eventually repeats itself again after some time. Good technical and succinct writing is almost impossible to iterate on with AI for me.


I spend a lot of time on LinkedIn due to job and I have an actual physical gag reflex at this point now from the "it's not X, it's Y" pattern.

I didn't know it was possible for a sentence structure to cause such a thing.


It's not the sentence structure—it's the lack of sincerity


I like how my eyes went over the first sentence, barely parsing it and already discarding the information, because its obviously ai generated. Its like the circumstances we live in added a new layer of perception to my brain to guard itself against the flood of useless information!


It isn't AI generated it is just plain a vacuous cliche. Seriously what is with people who think 'they can always tell it is AI' when really AI is living rent free in their head and they fixate on anything they don't like and are oh so convinced it must be the AI they hate. They're exactly like Fundamentalists and the devil. Or Communists and how they think capitalism literally intentionally created everything as harmful as possible just to spite them.


Holy mother of ai psychosis


wat


I really hope it's intentional. The author is a smart, accomplished person. He even published books. It's sad if this kind of person thinks it's okay to just outsource their writing to AI.


Reads like a love letter to his new employer. Hopefully it earns him points there. I admire his work and will just pretend I never read this.


YouTube Shorts exist, which they brag about hours watched, so I don't think they really care about those things at all.


Right, if there's no legal weight to any of their statements then they mean almost nothing. It's a very weak signal and just feels like marketing. All digital goods can and will be made worse over time if it benefits the company.


If I made a new, not-AI tool called 'correct answer provider' which provided definitive, incorrect answers to things you'd call it bad software. But because it is AI we're going to blame the user for not second guessing the answers or holding it wrong ie. bad prompting.


This feels like a case of guessing at something you could know. There are two types of allocations that each have a size and free method. The free method is polymorphic over the allocations type. Instead of using a tag to know absolutely which type an object it is you guess based on some other factor, in this case a size invariant which was violated. It also doesn't seem like this invariant was ever codified otherwise the first time a large alloc was modified to a standard size it would've blown up. It's worth asking yourself if your distinguishing factor is the best you can use or perhaps there is a better test. Maybe in this case a tag would've been too expensive.


Do you envision the development to track clojure as much as is possible, similar to how cljs was conceived to be clojure in js and not just clojure-ish js, or do you think you'll eventually diverge? I made a language a while ago that was like 90% clojure but hesitated to call it that because I didn't want there to be an expectation that the same code would run as-is in both languages. Seems like from the landing page you're going for more of a drop in replacement. Look cool, good luck!


jank is Clojure and will track upstream Clojure development. I'm working closely with the Clojure team and other dialect devs to ensure this remains the case. I am leading a cross-dialect clojure-test-suite to help ensure parity across all dialects: https://github.com/jank-lang/clojure-test-suite We have support or work ongoing for Clojure JVM, ClojureScript, Clojure CLR, babashka, Basilisp, and jank.

With that said, jank will do some trail blazing down other paths (see my other comments here about Carp), but they will be optional modes which people can enable which are specific to jank. Clojure compatibility will remain constant.


What factual errors did you the human notice


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: