Vinnaren i pepparkakshustävlingen!
  • 2
  • 3
2023-01-08, 00:48
  #25
Medlem
Citat:
Ursprungligen postat av CyberVillain
Nej du har fel. Du kan bygga DSL i ett annat sprk. Det kallas fr intern DSL.

External and Embedded Domain Specific Languages

DSLs implemented via an independent interpreter or compiler are known as External Domain Specific Languages. Well known examples include LaTeX or AWK. A separate category known as Embedded (or Internal) Domain Specific Languages are typically implemented within a host language as a library and tend to be limited to the syntax of the host language, though this depends on host language capabilities.
Var kommer detta ifrn?

Men om vi utgr frn denna definitionen vad r d Regex i .NET? Jag tolkar definitionen som att Regex i .NET r en internal DSL. Jag kan inte tolka det som att Fluent C# r en internal DSL.
Citera
2023-01-08, 01:22
  #26
Medlem
Citat:
Ursprungligen postat av Binary
Var kommer detta ifrn?

Men om vi utgr frn denna definitionen vad r d Regex i .NET? Jag tolkar definitionen som att Regex i .NET r en internal DSL. Jag kan inte tolka det som att Fluent C# r en internal DSL.

Det r frn wikin fr DSL. Fluent syntax r det vanligare sttet att skapa internal DSL i C#
__________________
Senast redigerad av CyberVillain 2023-01-08 kl. 01:27.
Citera
2023-01-08, 13:57
  #27
Medlem
bithaxs avatar
Citat:
Ursprungligen postat av Binary
Fast nu fuskade du lite och anvnda Linq-metoden OrderBy. Dvs, du anvnde faktiskt funktionell programmering i ditt exempel dr du frskte visa att imperativ stil r bttre. Map, Reduce r ocks funktionell programmering. S egentligen gillar du det, du r bara inte verens med hur det r designat eller namngivet i .net?

Om du ven hade skrivit en egen implementation fr sortering, eller sortering p flera flt d hade du tydligare sett frdelen med funktionell stil. Ju mer komplext det blir, desto bttre blir funktionell programmering. Folk som jobbar mycket med komplicerade berkningar anvnder ofta funktionella sprk.

Att skapa egna lager med funktionella anrop r ofta en bra id tycker jag.
Kodens syfte blir mycket enklare att frst om du fr in mer affrsregler och begrepp. T.ex
list.map(...) //innehller logik som rknar om priser till EUR
Vs:
shoppingcart.mapToCurrency(..., currencyInfo) //mycket bttre kod IMHO

Dremot godknner jag inte att gra sdant som globala extensions, d fr man God objects som vet allt, det r inte bra. Typ string.ParseCustomer()

Man fr inte anvnda metoder i standardbiblioteket fr att de r funktionell programnering? okej. I java har du list.Sort(). Utgr den funktionell programmering?

Vi kan skriva en egen order by s r det inte funktionell programmering d. Smart.

Jag gillar inte funktionell stil nr det blir svrare att frst (som linq i mnga fall) och nr man bryter mot SOLID fr att koden ska bli bttre och mer lsbar.
__________________
Senast redigerad av bithax 2023-01-08 kl. 14:06.
Citera
2023-01-08, 14:16
  #28
Medlem
Citat:
Ursprungligen postat av bithax
Man fr inte anvnda metoder i standardbiblioteket fr att de r funktionell programnering? okej. I java har du list.Sort(). Utgr den funktionell programmering?

Vi kan skriva en egen order by s r det inte funktionell programmering d. Smart.

Jag gillar inte funktionell stil nr det blir svrare att frst (som linq i mnga fall) och nr man bryter mot SOLID fr att koden ska bli bttre och mer lsbar.
Nu r ju SOLID specifikt inriktat p OOP, s att funktionell programmering inte uppfyller det r inte s konstigt.

Men det r ju inte s att det innebr att funktionell kod fr den delen blir olslig (vilket fr vrigt r rtt s subjektivt). Den som har jobbat med funktionella sprk tycker antagligen att koden r mer lttlst.

Men nu handlar trden om funktionell programmering i ett OOP-sprk, s det r vl egentligen en relevant invndning frn din sida.

Det gr sjlvklart att missbruka LINQ s att man fr en lng kedja av komplicerade lambda-funktioner, men anvnt p "rtt" stt s tycker jag nd att koden blir bde elegant och lttlst. Srskilt jmfrt med imperativ kod med en massa loopar.
Citera
2023-01-08, 14:18
  #29
Medlem
Citat:
Ursprungligen postat av bithax
Man fr inte anvnda metoder i standardbiblioteket fr att de r funktionell programnering? okej. I java har du list.Sort(). Utgr den funktionell programmering?

Vi kan skriva en egen order by s r det inte funktionell programmering d. Smart.

Jag gillar inte funktionell stil nr det blir svrare att frst (som linq i mnga fall) och nr man bryter mot SOLID fr att koden ska bli bttre och mer lsbar.
Sjlvklart ska du i de flesta fallen anvnda sdana inbyggda metoder fr sortering mm. Pongen hr var att jmfra typisk funktionell programmering med imperativ programmering dr du behver hlla reda p interna tillstnd i olika temp-variabler. Men vill du inte s vill du inte. Du slipper

Man kan kombinera SOLID med funktionell stil, det gr man vanligen i C# hela tiden.
Citera
2023-01-08, 21:07
  #30
Medlem
Citat:
Ursprungligen postat av CyberVillain
Det r frn wikin fr DSL. Fluent syntax r det vanligare sttet att skapa internal DSL i C#
Jag kollade med Chat GPT och det stmmer, d lrde jag mig ngot nytt. Jag tycker dock fortfarande att det r en olycklig klassificering eftersom det r spass stor skillnad p t.ex. SQL, Regex, och att du fljer ett visst pattern i C#.
Citera
2023-01-08, 22:20
  #31
Medlem
Citat:
Ursprungligen postat av Binary
Jag kollade med Chat GPT och det stmmer, d lrde jag mig ngot nytt. Jag tycker dock fortfarande att det r en olycklig klassificering eftersom det r spass stor skillnad p t.ex. SQL, Regex, och att du fljer ett visst pattern i C#.

Som sagt skillnad p extern och intern DSL
Citera
2023-01-11, 18:15
  #32
Medlem
bithaxs avatar
Idag igen samma argument.
Ska vi ha vi anvnda dependency injection fr att skicka in ett token i klienten, eller ska vi bara lgga till string parameter verallt?

Ja men vi lgger ju till en string parameter p alla metoder fr det r mer funktionellt.

Fan vad trtt jag blir.
Citera
2023-04-19, 18:19
  #33
Medlem
Citat:
Ursprungligen postat av bithax
De kunde ha kallat select fr map i stllet och haft reduce, dvs samma som javascript.

select antar jag kommer frn att frska efterlikna sql. Reduce funderar jag lite p, fr r inte det precis samma som linqs aggregate?
Citera
2023-04-21, 05:51
  #34
Medlem
bithaxs avatar
Citat:
Ursprungligen postat av konrad-zuse
select antar jag kommer frn att frska efterlikna sql. Reduce funderar jag lite p, fr r inte det precis samma som linqs aggregate?

Jo men man valde att gra sql like domain language i stllet fr att flja vedertagna begrepp som dessutom r kortare.

Du har ju andra vanliga listfunktioner som t.ex foldLeft osv. De har vl ngon motsvarighet i linq, men ja man mste ju d lra sig vad de heter i C# i stllet fr vad de heter i alla andra sprk.

Det r lite som om de hade kallat foreach fr Iterate-Over eller liknande. Det kan man ju gra, men det r ju knappast standard lixom.
__________________
Senast redigerad av bithax 2023-04-21 kl. 05:54.
Citera
  • 2
  • 3

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in