7,317 karma · joined February 13, 2010
If I knew the CSV file didn't have built-in headers, I'd write the Lil script like this:
purchases:readcsv["country,amount,discount\n",read["headerless.csv"] "sii"]The typecode-string approach in Lil is very similar to how Q handles it with dyadic 0:.
In this specific example I could do without the typecode-string since arithmetic operators like sum, -, and * will coerce string columns into numbers, but I think this way is cleaner.
purchases:readcsv[read["purchases.csv"] "sii"]
Summing a column: sum purchases.amount
To create a summary, we need to reduce each group to a single row: select first country sum amount by country from purchases
Discounting: select first country sum amount-discount by country from purchases
Lil doesn't have a "median" primitive. Decks can contain multiple modules, but we happen to know this one is alone. Your path will vary: stats:first import["stats.deck"]
select first country sum amount-discount by country where amount<stats.median[amount]*10 from purchases
Calculating the median within each group is merely a matter of reordering clauses: select first country sum amount-discount where amount<stats.median[amount]*10 by country from purchasesIn the broader context of most human societies treating meat consumption as a default, with thousands of years of precedent, it deliberately frames abstaining from the use of "GenAI" as an extreme perspective, suggesting that moderate or extensive usage of LLMs and their ilk is more intrinsically "normal". The "GenAI" tools in question have only existed for a few years- or perhaps months in more specific cases- and the unending marketing blitz around them notwithstanding, using them does not remotely represent an engrained cultural default.
The choice of terminology also casually devalues and denigrates the reasons many people have for being actual vegans. It's meant to sneeringly evoke negative stereotypes of vegans as annoying and irrational.
Attempting to carve out a "softened" version of this language with the "vegetarian" label is not descriptively useful.
l_inner:l[1][1]
# {"age":3}
l_inner.age:9
# {"age":9}
l_inner
# {"age":9}
l
# (1,(2,{"age":3}),4)
If an amending expression isn't "rooted" in a variable binding, it also returns the entire new structure: (1,(list 2,list ().age:5),4)[1][1].age:99
# (1,(2,{"age":99}),4) cat.age:3
# {"age":3}
Defining "l" as in the example in the article. We need the "list" operator to enlist nested values so that the "," operator doesn't concatenate them into a flat list: l:1,(list 2,list cat),4
# (1,(2,{"age":3}),4)
Updating the "age" field in the nested dictionary. Lil's basic datatypes are immutable, so "l" is rebound to a new list containing a new dictionary, leaving any previous references undisturbed: l[1][1].age:9
# (1,(2,{"age":9}),4)
cat
# {"age":3}
There's no special "infix" promotion syntax, so that last example would be: l:l,5
# (1,(2,{"age":9}),4,5)
[0] http://beyondloom.com/tools/trylil.htmlDon't kid yourself. If you use this junk, it's making you dumber and damaging your critical thinking skills, full-stop. This is delegation of core competency. You may feel smarter, or that you're learning faster, of that you're more productive, but to people who aren't addicted to LLMs it sounds exactly like gamblers insisting they have a foolproof system for slots, or alcoholics insisting that a few beers make them a better driver. Nobody outside the bubble is impressed with the results.
> Executes one line of script per frame (~60 lines/sec).
Makes the "runs at 60FPS" aspect of the engine feel a lot less relevant. At this speed, anything more complex than Pong would be a struggle. Even a CHIP-8 interpreter is usually expected handle a dozen or so comparably expressive instructions per frame.I like K better than J aesthetically, but it's harder to recommend to beginners due to the fragmentation of the ecosystem.
5(|+\)\1,1Some code architectures make privacy and security structurally impossible from the beginning.
As technologists, we should hold ourselves responsible for ensuring the game isn't automatically lost before the software decisions even leave our hands.
2. The risk of using "illegal" training data is irrelevant, because no GenAI vendors have been meaningfully punished for violating copyright yet, and in the current political climate they don't expect to be anytime soon. Even so,
3. Presuming they get caught redhanded using personal data without permission- which, given the nature of LLMs would be extremely challenging for any individual customer to prove definitively- they may lose customers, and customers may try to sue, but you can expect those lawsuits to take years to work their way through the courts; long after these companies IPO, employees get their bag, and it all becomes someone else's problem.
4. The idea of using carefully curated datasets is popular rhetoric, but absolutely does not reflect how the biggest GenAI vendors do business. See (1).
AI labs are extremely shortsighted, sloppy, and demonstrably do not care a single iota about the long term when there's money to be made in the short term. Employees have gigantic financial incentives to ignore internal malfeasance or simple ineptitude. The end result is, if anything, far worse than stupidity.
"drunk driving may kill a lot of people, but it also helps a lot of people get to work on time, so, it;s impossible to say if its bad or not,"