bachelor-group-66-systemf / final_report

0 stars 0 forks source link

Section 2.1: Lambda Calculus #3

Open sebastianselander opened 1 year ago

sebastianselander commented 1 year ago

Please review my boys :pray:

v-olin commented 1 year ago

Struktur

Jag vet inte riktigt om jag tycker att det är lite kort eller inte, men samtidigt så är det ju inte så stort område. Möjligtvis om man hade kanske kunnat lägga section 2.2 Simply typed lambda calculus under samma titel eftersom att dem är nära besläktade med varandra. Samt att 2.2 också är ganska kort.

Innehåll

Överlag bra skrivit, kort och koncist. Dock saknar jag koppling till vårt projekt och hur det har påverkat oss (jag saknar det också för memory management men ska fixa det sen) som det nämns i skrivanvisningarna:

Här anges även hur experimentet/rapporten knyter an till eller påverkas av angränsande teoretiska ramverk eller den teoretiska bakgrund som finns för de val man gjort i arbetet.

Jag tänker typ att man skulle kunna skriva om varför lambda kalkyl är viktigt för funktionella språk, varför vi valde att basera vårt språk på det eller varför funktionella språk är baserade på lambda kalkyl.

Textflöde

Möjligtvis om man också kan omformulera vissa meningar så att dem inte blir lika repetetiva. Exempelvis:

The first of which is called α-conversion. α-conversion is the process of ...

"α-conversion" kommer två gånger direkt på varandra, man hade kanske kunnat skriva det med ett bättre flöde som:

The first of which is called α-conversion. This reduction is the process of ...

Likadant med ordet "reduction" i dessa meningar:

The second reduction is the β-reduction. The β-reduction is a reduction where the bound variable in an abstraction is replaced with the argument term.

Hade kunnat skrivas som:

The second is the β-reduction, which replaces bound variables in abstractions with argument terms.

sebastianselander commented 1 year ago

EDIT (2023-04-06. kl. 10:20): Ändrar texten efter kritiken under textflöde, tycker det blir bättre

Funderade också lite på längden men får känslan att om man lyfter mer än detta så kommer det blir väldigt komplicerat bara, tänkvärt dock. Har någon något konkret som tycker borde med så är jag väldigt öppen för det

Jag tänker typ att man skulle kunna skriva om varför lambda kalkyl är viktigt för funktionella språk, varför vi valde att basera vårt språk på det eller varför funktionella språk är baserade på lambda kalkyl.

Tänker att det kommer senare i texten, typ nästa kapitel, skulle nog i efterhand säga detsamma om memory management-texten. I mina ögon är teoridelen något som bara introducerar läsaren till teorin bakom allt, håller dock med om att det är oklart för läsaren varför alla koncept är relevanta. Om man kikar på FunQs teoridel så knyter de inte ann till resten av projektet, utan det kommer senare.

Textflöde

När jag skrev första gången skrev jag ungefär som du påpekar men läste lite i en PhD-thesis där de aldrig använde orden it/which etc, utan föredrog att skriva ut namnet på saken det refererade till. Exempelvis bilden nedan. Kan fråga Patrik om detta också

image

image

sebastianselander commented 1 year ago
If a lambda abstraction has introduced a variable in a term, the
variable is said to be bound. Otherwise, it is called free. For example, the variable x is bound in λx.x,
and free in λy.x. The set of free variables in a term M is denoted by F V (M ). The last term describes
an application, that is, applying a function to its argument.

Denna texten är tagen rakt av från FunQ. Problemet jag har med den är att jag vet inte riktigt om vi någonsin kommer referera tillbaks till den och då känns det som man bara lyfter det för att det är en del av lamdakalkyl. Tycker personligen inte man ska ta med saker "bara för att" om det inte är relevant, blir svårt för läsaren att ta med den viktiga informationen då!

Är öppen för andra tankar dock!

Rakarake commented 1 year ago

Jag håller helt med, om koncept och namn som "The set of free variables in a term M is denoted by F V (M )" inte används bör de inte vara med. Används "the set of free variables" i type checkern? Kanske kan den här notationen användas i Method, isåfall kan man ju spara detta.