Skip to content

Commit 59eeb3e

Browse files
committed
Add curry function
1 parent 8888657 commit 59eeb3e

3 files changed

Lines changed: 367 additions & 1635 deletions

File tree

src/forbidden/function.gleam

Lines changed: 366 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
import forbidden/list as flist
2+
import gleam/int
3+
import gleam/list
4+
15
// stolen from https://github.com/gleam-lang/stdlib/blob/5bc0aa4c7881b98d49804b80789ed279d944d70e/src/gleam/function.gleam
26
/// Takes two functions and chains them together to form one function that
37
/// takes the input from the first and returns the output of the second.
@@ -6,6 +10,368 @@ pub fn compose(fun1: fn(a) -> b, fun2: fn(b) -> c) -> fn(a) -> c {
610
fn(a) { fun2(fun1(a)) }
711
}
812

13+
const dishes = [
14+
"Machher Jhol",
15+
"Pork jarpaa jurpie",
16+
"Chak-Hao Kheer",
17+
"Galho",
18+
"Achari baingan",
19+
"Aloo gobi",
20+
"Aloo tikki",
21+
"Aloo tuk",
22+
"Aloo matar",
23+
"Aloo kulcha",
24+
"Aloo methi",
25+
"Aloo shimla mirch",
26+
"Baati",
27+
"Bhatura",
28+
"Bhindi masala",
29+
"Biryani",
30+
"Butter chicken",
31+
"Murgh mahal",
32+
"Chaat",
33+
"Chana masala",
34+
"Chapati",
35+
"Chicken rezala",
36+
"Chicken Tikka",
37+
"Chicken tikka masala",
38+
"Chole bhature",
39+
"Daal baati churma",
40+
"Dal fara",
41+
"Dal makhani",
42+
"Kali dal",
43+
"Dalpuri",
44+
"Dal tadka",
45+
"Dum aloo",
46+
"Poha",
47+
"Fara",
48+
"Aloo Phalliyaan",
49+
"Gajar Pak",
50+
"Gatte ki Sabzi",
51+
"Gajar matar aloo",
52+
"Gobhi matar",
53+
"Hari mutter ka nimona (green peas daal)",
54+
"Imarti",
55+
"Imarti with rabri",
56+
"Jalebi",
57+
"Jaleba",
58+
"Jalfrezi",
59+
"Kachori",
60+
"Kadai paneer",
61+
"Kadhi pakoda",
62+
"Karela bharta",
63+
"Katha meetha petha / kaddu halwa",
64+
"Kheer",
65+
"Khichdi",
66+
"Kadhi and Khichdi",
67+
"Khoya paneer",
68+
"Kofta",
69+
"Kulfi falooda",
70+
"Laapsi",
71+
"Lauki ke kofte",
72+
"Lauki ki bhaaji",
73+
"Litti chokha",
74+
"Lobiya",
75+
"Makhaan ka kheer",
76+
"Makki ki roti",
77+
"Sarson ka saag",
78+
"Matar paneer",
79+
"Mathura peda",
80+
"Methi saag",
81+
"Chaulai saag",
82+
"Millet Lapsi",
83+
"Mirchi bada",
84+
"Missi roti",
85+
"Mixed vegetable",
86+
"Moong dal ki Lapsi",
87+
"Murgh musallam",
88+
"Mushroom do pyaza (Kanda Khumb)",
89+
"Mushroom matar (Matar Khumb)",
90+
"Naan",
91+
"Naan Khatai",
92+
"Navrattan korma",
93+
"Pakhala",
94+
"Palak paneer",
95+
"Paneer butter masala",
96+
"Paneer makhani",
97+
"Paneer tikka masala",
98+
"Pani puri",
99+
"Panjeeri",
100+
"Papad",
101+
"Paratha",
102+
"Patrode",
103+
"Phirni",
104+
"Pinni",
105+
"Rajma",
106+
"Ramatori bhaaji",
107+
"Samosa",
108+
"Sattu ki roti",
109+
"Shahi paneer",
110+
"Rajwadi Chhena",
111+
"Rajwadi Paneer",
112+
"Shahi tukra",
113+
"Singhada Lapsi",
114+
"Sooji halwa (Suji Lapsi)",
115+
"Sweet pethas",
116+
"kesar petha",
117+
"pista petha",
118+
"Talit Macchi",
119+
"Tamatar Chaat",
120+
"Tandoori Chicken",
121+
"Tandoori Fish Tikka",
122+
"Ananas menaskai",
123+
"Attu",
124+
"Kesari bat",
125+
"Avial",
126+
"Baida roti",
127+
"Halwa",
128+
"Bhajji",
129+
"Bisi bele bath",
130+
"Bonda",
131+
"Chettinadu Chicken",
132+
"Chicken 65",
133+
"Currivepillai sadam",
134+
"Dibba rotti",
135+
"Dosa",
136+
"Double ka meetha",
137+
"Ennai kathirikkai",
138+
"Goli bajje",
139+
"Golichina Mamsam",
140+
"Hyderabadi biryani",
141+
"Idiyappam",
142+
"Idli",
143+
"Indian omelette",
144+
"Kaara kozhambu",
145+
"Kanji",
146+
"Keerai koottu",
147+
"Keerai masiyal",
148+
"Keerai poriyal",
149+
"Keerai sadam",
150+
"Kerala Beef Fry",
151+
"Kodubale",
152+
"kolhapuri akkha masoor Dal",
153+
"Koottu",
154+
"Kori rotti",
155+
"Kos kootu",
156+
"Koshambri",
157+
"Kothamali sadam",
158+
"Kuzhakkattai",
159+
"Kuzhambu",
160+
"Masala Dosa",
161+
"Nandu omelette",
162+
"Obbattu",
163+
"holige",
164+
"bobbattu",
165+
"pooran-poli",
166+
"Olan",
167+
"Pachadi",
168+
"Paniyaram",
169+
"Paddu",
170+
"Gunthapangnalu",
171+
"Papadum",
172+
"Paravannam",
173+
"Parotta",
174+
"Paruppu sadam",
175+
"Payasam",
176+
"Pesarattu",
177+
"Pongal",
178+
"Poriyal",
179+
"Puli sadam",
180+
"Puliogre",
181+
"Puliohara",
182+
"Puttu",
183+
"Ragi mudhe",
184+
"Kali",
185+
"Rasam",
186+
"Sajjige",
187+
"Sakkara pongal",
188+
"Sambar",
189+
"Sandige (Karnataka)",
190+
"Vattral",
191+
"Sevai",
192+
"Sponge dosa",
193+
"Thattai",
194+
"Thayir sadam",
195+
"mosaranna",
196+
"perugannam",
197+
"Theeyal",
198+
"Thengai sadam",
199+
"Uttapam",
200+
"Vada",
201+
"Varuval",
202+
"Wheat upma",
203+
"Uppittu",
204+
"Yelumicham sadam",
205+
"chitranna",
206+
"Amti",
207+
"Bajri no rotlo",
208+
"Batata Saung",
209+
"Barfi",
210+
"Basundi",
211+
"Bhakri",
212+
"Bombil fry",
213+
"Chevdo",
214+
"Cholafali",
215+
"Chorafali",
216+
"Daal Dhokli",
217+
"Dabeli",
218+
"Dahi vada",
219+
"Dalithoy",
220+
"Dhokla",
221+
"Doodhpak",
222+
"Dudhi no halwo",
223+
"dudhi muthiya",
224+
"Gajar halwo",
225+
"Gatta curry",
226+
"Ghari",
227+
"Ghooghra",
228+
"Gud papdi",
229+
"Gol papdi",
230+
"Gulab jamun",
231+
"Halvasan",
232+
"Handwo",
233+
"Gur",
234+
"Jeera Aloo",
235+
"Juvar no rotlo",
236+
"Kansar",
237+
"Karanji",
238+
"Keri no ras",
239+
"Khakhra",
240+
"Khandvi",
241+
"Kombdi vade",
242+
"Kopra paak",
243+
"Koshimbir",
244+
"Kolim",
245+
"Jawla",
246+
"Laddu",
247+
"Locha",
248+
"Malpua",
249+
"Methi na Gota",
250+
"Modak",
251+
"Mohanthal",
252+
"Chakri",
253+
"chakali",
254+
"Muthiya",
255+
"Naralachi vadi",
256+
"Khobryachi vadi",
257+
"Coconut vadi",
258+
"Oondees",
259+
"Panipuri",
260+
"Patra",
261+
"Pav Bhaji",
262+
"Penda",
263+
"Pooran-poli",
264+
"Poori",
265+
"Puri Bhaji",
266+
"Rasya muthia",
267+
"Sabudana Khichadi",
268+
"Saath",
269+
"Sev khamani",
270+
"Sev tameta",
271+
"Shakarpara",
272+
"Namakpara",
273+
"Shankarpali",
274+
"Shiro",
275+
"Shrikhand",
276+
"Sohan papdi",
277+
"Soonvali",
278+
"Sukhdi",
279+
"Surnoli",
280+
"Sutarfeni",
281+
"Thalipeeth",
282+
"Thepla",
283+
"Undhiyu",
284+
"Upmaa",
285+
"Vada pav",
286+
"Veg Kolhapuri",
287+
"Vindaloo",
288+
"Ghebar",
289+
"Ghevar",
290+
"Lilva Kachori",
291+
"Maghaz",
292+
"Mag Dhokli",
293+
"Khichu",
294+
"Farsi Puri",
295+
"Khaman",
296+
"Turiya Patra Vatana sabji",
297+
"Mohan thaal",
298+
"Churma Ladoo",
299+
"Zunka",
300+
"Jhunka",
301+
"Pitla",
302+
"Cheera Doi",
303+
"Daab chingri",
304+
"Dhup Pitha",
305+
"Gheela Pitha",
306+
"Hurum",
307+
"Khar",
308+
"Kumol Sawul",
309+
"Loskora (Coconut Laddu)",
310+
"Luchi",
311+
"Malpua/Malpoa",
312+
"Momo",
313+
"Dalma",
314+
"Muri Naaru",
315+
"Pani Tenga",
316+
"Sunga Pitha",
317+
"Alu Pitika",
318+
"Masor tenga",
319+
"Bengena Pitika",
320+
"Bilahi Maas",
321+
"Black rice",
322+
"Bora Sawul",
323+
"Brown Rice",
324+
"Chhenagaja",
325+
"Chhenapoda",
326+
"Chingri malai curry",
327+
"Dal",
328+
"Goja",
329+
"Hando Guri",
330+
"Haq Maas",
331+
"Horioh Maas",
332+
"Ilish",
333+
"Chingri Bhape",
334+
"Kabiraji",
335+
"Kharoli",
336+
"Khorisa",
337+
"Koldil Chicken",
338+
"Koldil Duck",
339+
"Konir Dom",
340+
"Lai Haq Maas",
341+
"Litti",
342+
"Maasor Tenga",
343+
"Masor Koni",
344+
"Masor Petu",
345+
"Mishti Chholar Dal",
346+
"Mishti Doi",
347+
"Ou tenga Maas",
348+
"Bhaji",
349+
"Pani Pitha",
350+
"Pantua",
351+
"Payokh",
352+
"Peda",
353+
"Prawn malai curry",
354+
"Red Rice",
355+
"Rice",
356+
"Rasagola",
357+
"Roshogolla",
358+
"Shondesh",
359+
"Shukto",
360+
"Sunga Pork",
361+
"Tenga Doi",
362+
"Til Pitha",
363+
"Bread pakora",
364+
"Dhoper chop",
365+
"Karela nu shaak",
366+
]
367+
368+
/// Reccomends an indian dish
369+
/// Note: `Karela nu shaak` can never appear in erlang targets
370+
pub fn curry() {
371+
let len = list.length(dishes)
372+
flist.at(int.random(len - 1), dishes)
373+
}
374+
9375
/// Takes a function with `2` arguments (an arity of `2`), and returns the
10376
/// curried equivalent.
11377
///

src/forbidden/io.gleam

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// TODO: Test
1+
// TODO: Test later
22
/// Waits until the program feels like doing work
33
@external(erlang, "forbidden_stdlib_ffi", "procrastinate")
44
@external(javascript, "../forbidden_stdlib_ffi.mjs", "procrastinate")

0 commit comments

Comments
 (0)