Välkommen tillbaka till Campusbokhandeln! Vi firar med inlämningskampanj: Lämna in din kurslitteratur – få 150 :- och chansen att vinna 1 000 :-. Läs mer här!
Haskell: The Craft of Functional Programming | 2:a upplagan
- Häftad, Engelska, 1999
- Författare: Simon Thompson
- Betyg:
Välj skick:
Bästa pris
468
kr
Skickas inom 2-3 vardagar
Du sparar 448 kr
(49%)
mot nypris
Butikslager
Onlinelager
2 st i lager
$event.detail.name === 'store-selector' ? isOpen = true : ''"
@close-drawer.window="() => $event.detail.name === 'store-selector' ? isOpen = false : ''"
@keydown.escape.window="isOpen = false"
x-init="$watch('isOpen', value => {
if (value) {
$refs.dialog.showModal();
document.body.style.overflow = 'hidden';
//emit onDrawerOpen event
$dispatch('drawer-opened', {
name: 'store-selector'
});
} else {
setTimeout(() => {
$refs.dialog.showModal();
$refs.dialog.close();
}, 300);
document.body.style.overflow = '';
$dispatch('drawer-closed', {
name: 'store-selector'
});
}
});"
class="h-full"
>
Beskrivning
This student-focused introduction to the Haskell programming language emphasizes the process of crafting programs, problem solving and avoiding common pitfalls. Running examples and case studies highlight new concepts and alternative approaches to program design. (Bookdata)
Produktinformation
Kategori:
Okänd
Bandtyp:
Häftad
Språk:
Engelska
Förlag:
Okänt
Upplaga:
2
Utgiven:
1999-03-01
ISBN:
9780201342758
Sidantal:
528
Används bl.a. i följande kurser
$event.detail.name === 'primary-menu' ? isOpen = true : ''"
@close-drawer.window="() => $event.detail.name === 'primary-menu' ? isOpen = false : ''"
@keydown.escape.window="isOpen = false"
x-init="$watch('isOpen', value => {
if (value) {
$refs.dialog.showModal();
document.body.style.overflow = 'hidden';
//emit onDrawerOpen event
$dispatch('drawer-opened', {
name: 'primary-menu'
});
} else {
setTimeout(() => {
$refs.dialog.showModal();
$refs.dialog.close();
}, 300);
document.body.style.overflow = '';
$dispatch('drawer-closed', {
name: 'primary-menu'
});
}
});"
class="h-full"
>
$event.detail.name === 'mobile-search' ? isOpen = true : ''"
@close-drawer.window="() => $event.detail.name === 'mobile-search' ? isOpen = false : ''"
@keydown.escape.window="isOpen = false"
x-init="$watch('isOpen', value => {
if (value) {
$refs.dialog.showModal();
document.body.style.overflow = 'hidden';
//emit onDrawerOpen event
$dispatch('drawer-opened', {
name: 'mobile-search'
});
} else {
setTimeout(() => {
$refs.dialog.showModal();
$refs.dialog.close();
}, 300);
document.body.style.overflow = '';
$dispatch('drawer-closed', {
name: 'mobile-search'
});
}
});"
class="h-full"
>
$event.detail.name === 'mini-cart' ? isOpen = true : ''"
@close-drawer.window="() => $event.detail.name === 'mini-cart' ? isOpen = false : ''"
@keydown.escape.window="isOpen = false"
x-init="$watch('isOpen', value => {
if (value) {
$refs.dialog.showModal();
document.body.style.overflow = 'hidden';
//emit onDrawerOpen event
$dispatch('drawer-opened', {
name: 'mini-cart'
});
} else {
setTimeout(() => {
$refs.dialog.showModal();
$refs.dialog.close();
}, 300);
document.body.style.overflow = '';
$dispatch('drawer-closed', {
name: 'mini-cart'
});
}
});"
class="h-full"
>
$event.detail.name === 'add-to-cart' ? isOpen = true : ''"
@close-drawer.window="() => $event.detail.name === 'add-to-cart' ? isOpen = false : ''"
@keydown.escape.window="isOpen = false"
x-init="$watch('isOpen', value => {
if (value) {
$refs.dialog.showModal();
document.body.style.overflow = 'hidden';
//emit onDrawerOpen event
$dispatch('drawer-opened', {
name: 'add-to-cart'
});
} else {
setTimeout(() => {
$refs.dialog.showModal();
$refs.dialog.close();
}, 300);
document.body.style.overflow = '';
$dispatch('drawer-closed', {
name: 'add-to-cart'
});
}
});"
class="h-full"
>