19
\$\begingroup\$

In accordance with our meta agreement, since one candidate received more votes than the others, we have a new featured language! Throughout October 2020, our Language of the Month, nominated by myself, will be:

Husk

What's a Language of the Month?

See the meta post for nominations. In short, during October, those who wish to participate should learn (at least the basics of) Husk, use it to solve challenges, and discuss it in the Husk chat room. Participation is completely optional, but is anticipated to be fun!

Information about Husk

Husk is a purely functional and lazy golfing language created by me and Leo. It's inspired by, implemented in, and transpiled to Haskell.

  • AFAIK, it's the only golfing language that wholly embraces the functional paradigm. Its syntax is (mostly) based on prefix notation, like Pyth, but many golfing tricks rely on things like passing partially applied functions to other functions. All functions are curried automagically.
  • It has a strict and static (but implicit) type system, which is also unique among golfing languages.
  • Like Haskell, it's lazy, meaning that some programs that would result in infinite loops in most other languages will happily compile and run. Husk eats infinite lists of self-referential infinite lists for breakfast.

Resources

Additional efforts

I will award a bounty of 50 rep to each Husk answer posted in October by a user who hasn't posted a Husk answer before. Link your answer to the post below so I see it, and harass me in chat if I still don't. Please try to answer a question that I haven't answered yet, or I can't award your answer since then bounties start at 100 reputation.

| |
\$\endgroup\$
9
\$\begingroup\$

List of all Husk solutions posted in October

(First time posters highlighted in bold)

let ANSWER_IDS=[211958,211960,211973,211985,211988,211991,212008,212009,212013,212014,212017,212018,212019,212020,212021,212022,212025,212029,212038,212041,212042,212044,212045,212047,212048,212049,212052,212054,212055,212060,212065,212071,212075,212076,212081,212090,212092,212095,212096,212097,212101,212106,212110,212112,212114,212115,212121,212124,212127,212130,212139,212140,212141,212144,212146,212148,212150,212152,212157,212158,212167,212170,212172,212174,212175,212176,212177,212180,212206,212207,212210,212213,212214,212216,212225,212226,212230,212231,212237,212238,212253,212258,212260,212261,212267,212270,212271,212272,212274,212276,212277,212289,212290,212295,212297,212298,212299,212308,212314,212315,212340,212362,212364,212365,212367,212368,212377,212404,212407,212417,212419,212425,212426,213430,213434,213435,213437,213441,213444,213445,213448,213455,213465,213472,213505,213521,213555,213562,213563,213566,213567,213569,213573,213576,213577,213578,213592,213593,213594,213595,213596,213598,213604,213607,213608,213630,213638,213641,213671,213687,213694,213698,213699,213704,213721,213722,213724,213727,213729,213730,213731,213738,213747,213749,213751,213771,213774,213776,213777,213780,213786,213795,213796,213797,213798,213800,213808,213809,213810,213821,213822,213825,213826,213831,213836,213839,213841,213855,213865,213891,213895,213896,213907,213918,213923,213926,213928,213949,213950,213959,213968,214000,214002,214013,214014,214015,214016,214024,214026,214043,214061,214069,214074,214095,214097,214148,214181,214184,214208,214210,214212,214213,214227,214237,214243,214249,214250,214253,214267,214281,214295,214300,214305,214314,214316,214329,214330,214335,214338,214341,214344,214352,214355,214356,214358,214363,214374,214375,214378,214380,214381,214383,214386,214401,214402,214403,214404,214405,214408,214409,214414,214415,214425,214431,214439,214440,214441,214442,214445,214449,214459,214460,214462,214467,214470,214472,214473,214474,214475,214483,214492,214494,214496,214502,214509,214510,214511,214513,214515,214518,214523,214524,214525,214526,214527,214528,214529];
let answerUrl=al=>`https://api.stackexchange.com/2.2/answers/${al.join(";")}?pagesize=100&site=codegolf&filter=!8IfUmdAMyNVstws(VNIod`;
let questionUrl=ql=>`https://api.stackexchange.com/2.2/questions/${ql.join(";")}?pagesize=100&site=codegolf&filter=!C(nyt9mA492jCKBXW`;
let entry=(aid,qt,uid,un,add)=>`<li><a href="https://codegolf.stackexchange.com/${aid}/${uid}" rel="nofollow noreferrer">${qt}</a> by ${add?"<strong>":""}<a href="https://codegolf.stackexchange.com/users/${uid}" rel="nofollow noreferrer">${un}</a>${add?"</strong>":""}</li>`;
let body=el=>{document.body.innerHTML=`<ul>${el.join("")}</ul>`;document.head.innerHTML='<script type="text/x-mathjax-config">MathJax.Hub.Config({tex2jax:{inlineMath:[["\\\\$","\\\\$"]]}});<\/script>';let s=document.createElement("script");s.src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_HTML-full";document.head.appendChild(s);};
let getPosts=(pl,urlFun,idx,part)=>fetch(urlFun(pl.slice(0,100))).then(resp=>resp.json()).then(data=>{part=part||{};data['items'].forEach(a=>{part[a[idx]]=a;});return pl.length<=100?part:getPosts(pl.slice(100),urlFun,idx,part);});
getPosts(ANSWER_IDS,answerUrl,"answer_id").then(ad=>{let ql=[...new Set(Object.values(ad).map(a=>a["question_id"]))];ql.sort((x,y)=>x-y);getPosts(ql,questionUrl,"question_id").then(qd=>{let seen=new Set();body(ANSWER_IDS.map(a=>{if(!ad[a]){console.error(`answer ${a} not found`);return "";}return entry(a,qd[ad[a]["question_id"]]["title"],ad[a]["owner"]["user_id"],ad[a]["owner"]["display_name"],seen.has(ad[a]["owner"]["user_id"])?false:seen.add(ad[a]["owner"]["user_id"]));}));});});


List of all Husk tips posted in October


List of Husk-related challenges posted in October

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .