• 真实世界的Haskell
  • 真实世界的Haskell
  • 真实世界的Haskell
  • 真实世界的Haskell
21年品牌 40万+商家 超1.5亿件商品

真实世界的Haskell

65 7.4折 88 八五品

仅1件

上海徐汇
认证卖家担保交易快速发货售后保障

作者沙利文(Bryan Osullivan)、戈尔(Jobn Goerzen)、斯图尔特(Don Stewart) 著

出版社东南大学出版社

出版时间2010-01

版次1

装帧平装

货号T-8

上书时间2021-02-28

经史书局

五年老店
已实名 已认证 进店 收藏店铺
  • 店主推荐
  • 最新上架

   商品详情   

品相描述:八五品
商品描述
有馆藏标
图书标准信息
  • 作者 沙利文(Bryan Osullivan)、戈尔(Jobn Goerzen)、斯图尔特(Don Stewart) 著
  • 出版社 东南大学出版社
  • 出版时间 2010-01
  • 版次 1
  • ISBN 9787564119256
  • 定价 88.00元
  • 装帧 平装
  • 开本 16开
  • 纸张 其他
  • 页数 670页
  • 正文语种 英语
【内容简介】
Haskellismostlikelyquitedifferentfromanylanguageyouveeverusedbefore.Comparedtotheusualsetofconceptsinaprogrammersmentaltoolbox,functionalprogrammingoffersusaprofoundlydifferentwaytothinkaboutsoftware.
InHaskell,wedeemphasizecodethatmodifiesdata.Instead,wefocusonfunctionsthattakeimmutablevaluesasinputandproducenewvaluesasoutput.Giventhesameinputs,thesefunctionsalwaysreturnthesameresults.Thisisacoreideabehindfunctionalprogramming.
【目录】
Preface
1.GettingStarted
YourHaskellEnvironment
GettingStartedwithghci,theInterpreter
BasicInteraction:UsingghciasaCalculator
SimpleArithmetic
AnArithmeticQuirk:WritingNegativeNumbers
BooleanLogic,Operators,andValueComparisons
OperatorPrecedenceandAssociativity
UndefinedValues,andIntroducingVariables
DealingwithPrecedenceandAssociativityRules
Command-LineEditinginghci
Lists
OperatorsonLists
StringsandCharacters
FirstStepswithTypes
ASimpleProgram

2.TypesandFunctions
WhyCareAboutTypes?
Haskell’sTypeSystem
StrongTypes
StaticTypes
TypeInference
WhattoExpectfromtheTypeSystem
SomeCommonBasicTypes
FunctionApplication
UsefulCompositeDataTypes:ListsandTuples
FunctionsoverListsandTuples
PassinganExpressiontoaFunction
FunctionTypesandPurity
HaskellSourceFiles,andWritingSimpleFunctions
JustWhatIsaVariable,Anyway?
ConditionalEvaluation
UnderstandingEvaluationbyExample
LazyEvaluation
AMoreInvolvedExample
Recursion
EndingtheRecursion
ReturningfromtheRecursion
WhatHaveWeLearned?
PolymorphisminHaskell
ReasoningAboutPolymorphicFunctions
FurtherReading
TheTypeofaFunctionofMoreThanOneArgument
WhytheFussoverPurity?
Conclusion

3.DefiningTypes,StreamliningFunctions
DefiningaNewDataType
NamingTypesandValues
TypeSynonyms
AlgebraicDataTypes
Tuples,AlgebraicDataTypes,andWhentoUseEach
AnaloguestoAlgebraicDataTypesinOtherLanguages
PatternMatching
ConstructionandDeconstruction
FurtherAdventures
VariableNaminginPatterns
TheWildCardPattern
ExhaustivePatternsandWildCards
RecordSyntax
ParameterizedTypes
RecursiveTypes
ReportingErrors
AMoreControlledApproach
IntroducingLocalVariables
Shadowing
ThewhereClause
LocalFunctions,GlobalVariables
TheOffsideRuleandWhitespaceinanExpression
ANoteAboutTabsVersusSpaces
TheOffsideRuleIsNotMandatory
ThecaseExpression
CommonBeginnerMistakeswithPatterns
IncorrectlyMatchingAgainstaVariable
IncorrectlyTryingtoCompareforEquality
ConditionalEvaluationwithGuards

4.FunctionalProgramming
ThinkinginHaskell
ASimpleCommand-LineFramework
WarmingUp:PortablySplittingLinesofText
ALine-EndingConversionProgram
InfixFunctions
WorkingwithLists
BasicListManipulation
SafelyandSanelyWorkingwithCrashyFunctions
PartialandTotalFunctions
MoreSimpleListManipulations
WorkingwithSublists
SearchingLists
WorkingwithSeveralListsatOnce
SpecialString-HandlingFunctions
HowtoThinkAboutLoops
ExplicitRecursion
TransformingEveryPieceofInput
MappingoveraList
SelectingPiecesofInput
ComputingOneAnsweroveraCollection
TheLeftFold
WhyUseFolds,Maps,andFilters?
FoldingfromtheRight
LeftFolds,Laziness,andSpaceLeaks
FurtherReading
Anonymous(lambda)Functions
PartialFunctionApplicationandCurrying
Sections
As-patterns
CodeReuseThroughComposition
UseYourHeadWisely
TipsforWritingReadableCode
SpaceLeaksandStrictEvaluation
AvoidingSpaceLeakswithseq
LearningtoUseseq

5.WritingaLibrary:WorkingwithJSONData
AWhirlwindTourofJSON
RepresentingJSONDatainHaskell
TheAnatomyofaHaskellModule
CompilingHaskellSource
GeneratingaHaskellProgramandImportingModules
PrintingJSONData
TypeInferenceIsaDouble-EdgedSword
AMoreGeneralLookatRendering
DevelopingHaskellCodeWithoutGoingNuts
PrettyPrintingaString
ArraysandObjects,andtheModuleHeader
WritingaModuleHeader
FleshingOutthePretty-PrintingLibrary
CompactRendering
TruePrettyPrinting
FollowingthePrettyPrinter
CreatingaPackage
WritingaPackageDescription
GHC’sPackageManager
SettingUp,Building,andInstalling
PracticalPointersandFurtherReading

6.UsingTypeclasses
TheNeedforTypeclasses
WhatAreTypeclasses?
DeclaringTypeclassInstances
ImportantBuilt-inTypeclasses
Show
Read
Serializationwithreadandshow
NumericTypes
Equality,Ordering,andComparisons
AutomaticDerivation
TypeclassesatWork:MakingJSONEasiertoUse
MoreHelpfulErrors
MakinganInstancewithaTypeSynonym
LivinginanOpenWorld
WhenDoOverlappingInstancesCauseProblems?
RelaxingSomeRestrictionsonTypeclasses
HowDoesShowWorkforStrings?
HowtoGiveaTypeaNewIdentity
DifferencesBetweenDataandNewtypeDeclarations
Summary:TheThreeWaysofNamingTypes
JSONTypeclassesWithoutOverlappingInstances
TheDreadedMonomorphismRestriction
Conclusion

7.I/O
ClassicI/OinHaskell
PureVersusI/O
WhyPurityMatters
WorkingwithFilesandHandles
MoreonopenFile
ClosingHandles
SeekandTell
StandardInput,Output,andError
DeletingandRenamingFiles
TemporaryFiles
ExtendedExample:FunctionalI/OandTemporaryFiles
LazyI/O
hGetContents
readFileandwriteFile
AWordonLazyOutput
interact
TheIOMonad
Actions
Sequencing
TheTrueNatureofReturn
IsHaskellReallyImperative?
SideEffectswithLazyI/O
Buffering
BufferingModes
FlushingTheBuffer
ReadingCommand-LineArguments
EnvironmentVariables

8.EfficientFileProcessing,RegularExpressions,andFilenameMatching
EfficientFileProcessing
BinaryI/OandQualifiedImports
TextI/O
FilenameMatching
RegularExpressionsinHaskell
TheManyTypesofResult
MoreAboutRegularExpressions
MixingandMatchingStringTypes
OtherThingsYouShouldKnow
TranslatingaglobPatternintoaRegularExpression
AnimportantAside:WritingLazyFunctions
MakingUseofOurPatternMatcher
HandlingErrorsThroughAPIDesign
PuttingOurCodetoWork

9.I/OCaseStudy:ALibraryforSearchingtheFilesystem
ThefindCommand
StartingSimple:RecursivelyListingaDirectory
RevisitingAnonymousandNamedFunctions
WhyProvideBothmapMandforM?
ANaiveFindingFunction
Predicates:FromPovertytoRiches,WhileRemainingPure
SizingaFileSafely
TheAcquire-Use-ReleaseCycle
ADomain-SpecificLanguageforPredicates
AvoidingBoilerplatewithLifting
GluingPredicatesTogether
DefiningandUsingNewOperators
ControllingTraversal
Density,Readability,andtheLearningProcess
AnotherWayofLookingatTraversal
UsefulCodingGuidelines
CommonLayoutStyles

10.CodeCaseStudy:ParsingaBinaryDataFormat
GrayscaleFiles
ParsingaRawPGMFile
GettingRidofBoilerplateCode
ImplicitState
TheIdentityParser
RecordSyntax,Updates,andPatternMatching
AMoreInterestingParser
ObtainingandModifyingtheParseState
ReportingParseErrors
ChainingParsersTogether
IntroducingFunctors
ConstraintsonTypeDefinitionsAreBad
InfixUseoffmap
FlexibleInstances
ThinkingMoreAboutFunctors
WritingaFunctorInstanceforParse
UsingFunctorsforParsing
RewritingOurPGMParser
FutureDirections

11.TestingandQualityAssurance
QuickCheck:Type-BasedTesting
TestingforProperties
TestingAgainstaModel
TestingCaseStudy:SpecifyingaPrettyPrinter
GeneratingTestData
TestingDocumentConstruction
UsingListsasaModel
PuttingItAllTogether
MeasuringTestCoveragewithHPC

12.BarcodeRecognition
ALittleBitAboutBarcodes
EAN-13Encoding
IntroducingArrays
ArraysandLaziness
FoldingoverArrays
ModifyingArrayElements
EncodinganEAN-13Barcode
ConstraintsonOurDecoder
DivideandConquer
TurningaColorImageintoSomethingTractable
ParsingaColorImage
GrayscaleConversion
GrayscaletoBinaryandTypeSafety
WhatHaveWeDonetoOurImage?
FindingMatchingDigits
RunLengthEncoding
ScalingRunLengths,andFindingApproximateMatches
ListComprehensions
RememberingaMatch’sParity
ChunkingaList
GeneratingaListofCandidateDigits
LifeWithoutArraysorHashTables
AForestofSolutions
ABriefIntroductiontoMaps
FurtherReading
TurningDigitSoupintoanAnswer
SolvingforCheckDigitsinParallel
CompletingtheSolutionMapwiththeFirstDigit
FindingtheCorrectSequence
WorkingwithRowData
PullingItAllTogether
AFewCommentsonDevelopmentStyle

13.DataStructures
AssociationLists
Maps
FunctionsAreData,Too
ExtendedExample:/etc/passwd
ExtendedExample:NumericTypes
FirstSteps
CompletedCode
TakingAdvantageofFunctionsasData
TurningDifferenceListsintoaProperLibrary
Lists,DifferenceLists,andMonoids
General-PurposeSequences

14.Monads
RevisitingEarlierCodeExamples
MaybeChaining
ImplicitState
LookingforSharedPatterns
TheMonadTypeclass
AndNow,aJargonMoment
UsingaNewMonad:ShowYourWork!
InformationHiding
ControlledEscape
LeavingaTrace
UsingtheLoggerMonad
MixingPureandMonadicCode
PuttingaFewMisconceptionstoRest
BuildingtheLoggerMonad
SequentialLogging,NotSequentialEvaluation
TheWriterMonad
TheMaybeMonad
ExecutingtheMaybeMonad
MaybeatWork,andGoodAPIDesign
TheListMonad
UnderstandingtheListMonad
PuttingtheListMonadtoWork
DesugaringofdoBlocks
MonadsasaProgrammableSemicolon
WhyGoSugar-Free?
TheStateMonad
AlmostaStateMonad
ReadingandModifyingtheState
WilltheRealStateMonadPleaseStandUp?
UsingtheStateMonad:GeneratingRandomValues
AFirstAttemptatPurity
RandomValuesintheStateMonad
RunningtheStateMonad
WhatAboutaBitMoreState?
MonadsandFunctors
AnotherWayofLookingatMonads
TheMonadLawsandGoodCodingStyle

15.ProgrammingwithMonads
GolfingPractice:AssociationLists
GeneralizedLifting
LookingforAlternatives
TheNamemplusDoesNotImplyAddition
RulesforWorkingwithMonadPlus
FailingSafelywithMonadPlus
AdventuresinHidingthePlumbing
SupplyingRandomNumbers
AnotherRoundofGolf
SeparatingInterfacefromImplementation
MultiparameterTypeclasses
FunctionalDependencies
RoundingOutOurModule
ProgrammingtoaMonad’sInterface
TheReaderMonad
AReturntoAutomatedDeriving
HidingtheIOMonad
Usinganewtype
DesigningforUnexpectedUses
UsingTypeclasses
IsolationandTesting
TheWriterMonadandLists
ArbitraryI/ORevisited

16.UsingParsec
FirstStepswithParsec:SimpleCSVParsing
ThesepByandendByCombinators
ChoicesandErrors
Lookahead
ErrorHandling
ExtendedExample:FullCSVParser
ParsecandMonadPlus
ParsingaURL-EncodedQueryString
SupplantingRegularExpressionsforCasualParsing
ParsingWithoutVariables
ApplicativeFunctorsforParsing
ApplicativeParsingbyExample
ParsingJSONData
ParsingaHTTPRequest
BacktrackingandItsDiscontents
ParsingHeaders

17.InterfacingwithC:TheFFI
ForeignLanguageBindings:TheBasics
BeCarefulofSideEffects
AHigh-LevelWrapper
RegularExpressionsforHaskell:ABindingforPCRE
SimpleTasks:UsingtheCPreprocessor
BindingHaskelltoCwithhsc2hs
AddingTypeSafetytoPCRE
BindingtoConstants
AutomatingtheBinding
PassingStringDataBetweenHaskellandC
TypedPointers
MemoryManagement:LettheGarbageCollectorDotheWork
AHigh-LevelInterface:MarshalingData
MarshalingByteStrings
AllocatingLocalCData:TheStorableClass
PuttingItAllTogether
MatchingonStrings
ExtractingInformationAboutthePattern
PatternMatchingwithSubstrings
TheRealDeal:CompilingandMatchingRegularExpressions

18.MonadTransformers
Motivation:BoilerplateAvoidance
ASimpleMonadTransformerExample
CommonPatternsinMonadsandMonadTransformers
StackingMultipleMonadTransformers
HidingOurWork
MovingDowntheStack
WhenExplicitLiftingIsNecessary
UnderstandingMonadTransformersbyBuildingOne
CreatingaMonadTransformer
MoreTypeclassInstances
ReplacingtheParseTypewithaMonadStack
TransformerStackingOrderIsImportant
PuttingMonadsandMonadTransformersintoPerspective
InterferencewithPureCode
OverdeterminedOrdering
RuntimeOverhead
UnwieldyInterfaces
PullingItAllTogether

19.ErrorHandling
ErrorHandlingwithDataTypes
UseofMaybe
UseofEither
Exceptions
FirstStepswithExceptions
LazinessandExceptionHandling
Usinghandle
SelectiveHandlingofExceptions
I/OExceptions
ThrowingExceptions
DynamicExceptions
ErrorHandlinginMonads
ATinyParsingFramework

20.SystemsProgramminginHaskell
RunningExternalPrograms
DirectoryandFileInformation
ProgramTermination
DatesandTimes
ClockTimeandCalendarTime
FileModificationTimes
ExtendedExample:Piping
UsingPipesforRedirection
BetterPiping
FinalWordsonPipes

21.UsingDatabases
OverviewofHDBC
InstallingHDBCandDrivers
ConnectingtoDatabases
Transactions
SimpleQueries
SqlValue
QueryParameters
PreparedStatements
ReadingResults
ReadingwithStatements
LazyReading
DatabaseMetadata
ErrorHandling

22.ExtendedExample:WebClientProgramming
BasicTypes
TheDatabase
TheParser
Downloading
MainProgram

23.GUIProgrammingwithgtk2hs
Installinggtk2hs
OverviewoftheGTK+Stack
UserInterfaceDesignwithGlade
GladeConcepts
Event-DrivenProgramming
InitializingtheGUI
TheAddPodcastWindow
Long-RunningTasks
UsingCabal

24.ConcurrentandMulticoreProgramming
DefiningConcurrencyandParallelism
ConcurrentProgrammingwithThreads
ThreadsAreNondeterministic
HidingLatency
SimpleCommunicationBetweenThreads
TheMainThreadandWaitingforOtherThreads
SafelyModifyinganMVar
SafeResourceManagement:AGoodIdea,andEasyBesides
FindingtheStatusofaThread
WritingTighterCode
CommunicatingoverChannels
UsefulThingstoKnowAbout
MVarandChanAreNonstrict
ChanIsUnbounded
Shared-StateConcurrencyIsStillHard
Deadlock
Starvation
IsThereAnyHope?
UsingMultipleCoreswithGHC
RuntimeOptions
FindingtheNumberofAvailableCoresfromHaskell
ChoosingtheRightRuntime
ParallelProgramminginHaskell
NormalFormandHeadNormalForm
SequentialSorting
TransformingOurCodeintoParallelCode
KnowingWhattoEvaluateinParallel
WhatPromisesDoesparMake?
RunningOurCodeandMeasuringPerformance
TuningforPerformance
ParallelStrategiesandMapReduce
SeparatingAlgorithmfromEvaluation
SeparatingAlgorithmfromStrategy
WritingaSimpleMapReduceDefinition
MapReduceandStrategies
SizingWorkAppropriately
EfficientlyFindingLine-AlignedChunks
CountingLines
FindingtheMostPopularURLs
Conclusions

25.ProfilingandOptimization
ProfilingHaskellPrograms
CollectingRuntimeStatistics
TimeProfiling
SpaceProfiling
ControllingEvaluation
StrictnessandTailRecursion
AddingStrictness
UnderstandingCore
AdvancedTechniques:Fusion
TuningtheGeneratedAssembly
Conclusions

26.AdvancedLibraryDesign:BuildingaBloomFilter
IntroducingtheBloomFilter
UseCasesandPackageLayout
BasicDesign
Unboxing,Lifting,andBottom
TheSTMonad
DesigninganAPIforQualifiedImport
CreatingaMutableBloomFilter
TheImmutableAPI
CreatingaFriendlyInterface
Re-ExportingNamesforConvenience
HashingValues
TurningTwoHashesintoMany
ImplementingtheEasyCreationFunction
CreatingaCabalPackage
DealingwithDifferentBuildSetups
CompilationOptionsandInterfacingtoC
TestingwithQuickCheck
PolymorphicTesting
WritingArbitraryInstancesforByteStrings
AreSuggestedSizesCorrect?
PerformanceAnalysisandTuning
Profile-DrivenPerformanceTuning

27.SocketsandSyslog
BasicNetworking
CommunicatingwithUDP
UDPClientExample:syslog
UDPSyslogServer
CommunicatingwithTCP
HandlingMultipleTCPStreams
TCPSyslogServer
TCPSyslogClient

28.SoftwareTransactionalMemory
TheBasics
SomeSimpleExamples
STMandSafety
RetryingaTransaction
WhatHappensWhenWeRetry?
ChoosingBetweenAlternatives
UsingHigherOrderCodewithTransactions
I/OandSTM
CommunicationBetweenThreads
AConcurrentWebLinkChecker
CheckingaLink
WorkerThreads
FindingLinks
Command-LineParsing
PatternGuards
PracticalAspectsofSTM
GettingComfortablewithGivingUpControl
UsingInvariants

A.InstallingGHCandHaskellLibraries
B.Characters,Strings,andEscapingRules
Index
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP