-
Jeg har flyttet ut herfra,
-
og blogspot-bloggen vil ikke bli oppdatert. På
http://nibbler.no/blog/ kan du derimot følge med.
Husk å oppdatere bokmerker ;)
postet av
siv
@
14:17
-
4
kommentarer
-
Jeg er Chile
-

You're Chile!
You're really skinny, and kind of bumpy in frame, but you're not as rough a person as you used to be. You like long, long, long walks on the beach and avoiding having your rights violated, just like anybody else does. You're even
willing to stand up to those with more power and influence than you, trying to bring them to justice. Fight the man
Take the
Country Quiz at the
Blue Pyramid
postet av
siv
@
13:05
-
1
kommentarer
-
Jomfruturen min
-
/*************************************************
* Author: Siv Hansen
* Date: 26.08.2005
*
* Mitt første prolog-program
*************************************************/
/* deklarerer fakta-opplysninger om familieforhold
Denne påstanden er sann hvis første ledd virkelig er
forelder til annet ledd. Vi oppretter atomene, som om dette er sant */
parent(siv, stina).
parent(siv, torbjorn).
parent(lasse, stina).
parent(lasse, torbjorn).
parent(aslaug, lasse).
parent(oistein, lasse).
parent(aslaug, linda).
parent(aslaug, inge).
parent(paula, siv).
parent(paula, silja).
/* Forteller til prolog-tolkeren hvem som er kvinner*/
female(linda).
female(siv).
female(stina).
female(aslaug).
female(silja).
/* Definerer hva det vil si å være forfedre til noen.
I første tilfelle er X forfar til Y, hvis X er foreldre til Y */
ancestor(X, Y):- parent(X, Y).
/* Rekursiv kall. Relasjonen "ancestor" kaller seg selv. Prolog har ingen for-betingelser, slik de har i java, men rekursive kall er måten å løse dette på. Her sier jeg at X er forfar til Y hvis X er forelder til Z, og
Z er forfar til Y */
ancestor(X, Y):- parent(X, Z), ancestor(Z, Y).
/* Søster-relasjonen beskrives ved at X er søster til Y, hvis både X og Y har
minst en felles forelder, X er en kvinne og X er ikke den samme som Y
Det siste vises ved \=, som tilsvarer != fra andre programmeringsspråk */
sister(X, Y) :- parent(Z, X), parent(Z, Y), female(X), X\=Y.
/* søsken-relasjon */
sister_or_brother(X, Y):-
parent(Z, Y),
parent(Z, X),
Y\=X.
/* Forsøker meg på en far-relasjon */
far(X, Y):- parent(X, Y), not(female(X)).
/* Forsøker meg på en tante-relasjon.
Her sier jeg at X er tanten til N hvis en av N's forelder
er felles med X (tantens) og hvis N er mor til Niesen */
tante(X, Y):-
parent(Z, Y),
sister_or_brother(Z, X),
female(X),
Z\=X.
postet av
siv
@
20:58
-
1
kommentarer
-
INFO232 Prolog
-
Jeg har begynt forelesninger i programmeringsspråket Prolog.
Prolog is a logic programming language. The name Prolog is taken from programmation en logique (French for "logic programming"). It was created by Alain Colmerauer around 1972. It was an attempt to make a programming language that enabled the expression of logic instead of carefully specified instructions on the computer.
Kilde: en.wikipedia.org/wiki/Prolog
Prolog er det mest utbredte programmeringsspråket for logikkprogrammering (dvs bygger på INFO102, som jeg hatet dypt, villt og inderlig). I motsetning til prosedyrelle eller objektorienterte programmeringsspråk (som C eller java) hvor en i koden forteller hvordan en handling skal utføres for å returnere riktig resultat forteller man i deklarative språk
hva som skal utføres i stedet for
hvordan. Prolog er ikke et rent deklarativt språk, man må i mange tilfeller også ta høyde for hvordan handlinger skal utføres.
Et prolog-program består av en rekke
klausuler, betingelser som må oppfylles. Det finnes to typer klausuler, fakta- og regel-klausuler. Faktaklausuler er på formen
p(a1,...an).hvor p er relasjonsnavn og a er argumentene. Til sist må det være et punktum. (også her er prolog anderledes, for både i java og php brukes semikolon(;))
Eksempel på en fakta-klausul er
forelder(siv, stina). og
forelder(siv, torbjørn).(Jeg har utvidet denne med flere klausuler). Denne klausulen forteller at dette er sant, og at siv virkelig er mor til både stina og torbjørn. siv, stina og torbjørn kalles atomer, dvs nesten som variabler med kjent verdi. Alle atomer skrives med liten forbokstav. Når faktaklausulene er ramset opp kan man spørre mot de (nesten som i en database). Eksempel kan jeg spørre er siv torbjørns mor ved å skrive i kommandolinja i programmet (hører med at jeg bruker SWI Prolog-editor, som kan lastes ned fra
http://www.swi-prolog.org/. Jeg skriver denne kommandoen:
?- parent(siv, torbjorn).
YesHer blir påstanden siv er forelder til torbjørn evaluert til true, og dermed returneres et "yes". Hadde jeg spurt om jeg var forelder til arne ville svaret blitt false=nei.
Atomers motsetning er variabler, som skrives med stor forbokstav. Disse er variabler uten tilordnet verdi (nesten som ukjente i ligninger). Ved hjelp av variabler kan jeg spørre
hvem er forelder til torbjørn slik:
?- parent(X, torbjorn).
X = siv
hvor da X representerer foreldren, og torbjørn er barnet. I programmet har jeg deklarert både lasse og siv som forelder til torbjørn, og begge resultatene får jeg hvis jeg skriver ; (semikolon) etter resultatet helt til prolog-tolken svarer "no" (ingen flere svar). I SWI kan jeg bare trykke enter.
Man kan også stille sammensatte spørsmål ved å skille delspørsmålene med komma. Eksempelvis kan jeg spørre hvem som er besteforeldre til stina, det vil si hvem er mine foreldre.
parent(X, stina), parent(Y, X) hvor X er meg, og Y er min mor/far.
Videre har vi
regler i prolog. En regel består av delspørsmål som må evalueres til sant for at hele uttrykket skal bli sant. Det består av et hode og en kropp, og er på formen
p(a1,...an):- p1(b1,...bn),... ,pn(c1,...cn).Tegnet ":-" betyr det samme som en implikasjon (medfører). Slik kan jeg forenkle besteforeldre-relasjonen fra isted, ved å skrive
grandparent(X, Y) :- parent(X, Z), parent(Z, Y).X er Y's besteforelder hvis X er forelder til Z og Z er forelder til Y.
La oss si at jeg har deklarert alle i hele familien min, og markert kvinnene med female(). Dermed vil jeg kunne finne ut hvem som er søster/tante til hvem. En søster-relasjon ser slik ut:
sister(X,Y):- parent(Z,Y), parent(Z,X), female(X), X\=Y.Denne kodelinjen sier at X er søster til Y, hvis Z er foreldre til de begge, X er kvinne og X er ikke den samme som Y. (Det siste forhindrer at eksempelvis jeg blir returnert som min egen søster).
postet av
siv
@
20:07
-
0
kommentarer
-
Om menn og mus
-
Hans spurte meg en gang hvorfor jeg ikke liker menn. Kortversjonen finnes
her . Måtte de falle død om alle sammen.
postet av
siv
@
23:43
-
0
kommentarer
-
Det var den sommeren
-
sommeren hvor jeg tilbragte en uke i bringebæråkeren i Sogn. Det var den sommeren Lene kjørte naken på motorsykkel på Helleneset og jeg tenkte at dama var ei hore. Det var den sommeren hvor sommeren var over før den var begynt, jeg var ultramoderne og dumpa en fyr pr sms uten at han brydde seg noe særlig, var sykemeldt og bare gleda meg til skolen skulle begynne igjen. Nå er semesteret i gang og jeg lengter tilbake til sommerferie igjen.
Skolen har begynt og jeg savner Ben. Vet hun har det bra, skal til Bolognia, Italia? Men det er så langt herfra og jeg har lyst å drikke øl på Lille Zachen, snakke skit og kanskje skrive spørringer i relasjonell algebra. Rart hvor tomt det ble etter?a.
postet av
siv
@
13:15
-
0
kommentarer