Gemmule

Gemmules are internal buds found in sponges and are involved in asexual reproduction. It is an asexually reproduced mass of cells, that is capable of developing into a new organism i.e., an adult sponge.

Gemmules

Role in asexual reproduction

Asexual reproduction in sponges occurs via budding, either by external or internal buds. The internal buds are called gemmules. Only endogenous types of buds develop into new sponges.

Characteristics

Gemmules are resistant to desiccation (drying out), freezing, and anoxia (lack of oxygen) and can lie around for long periods of time. Gemmules are similar to a bacterium's endospore and are made up of amoebocytes surrounded by a layer of spicules and can survive conditions that would kill adult sponges. When the environment becomes less hostile, the gemmule resumes growing.

gollark: The current version uses a bunch of `defer`s to deallocate stuff as needed (I don't *think* it has any horrible memory leaks!). This works fine given that that stuff is all within one function, but I need similar logic in another one.
gollark: I just want to know how to idiomatically make GCable wrappers for the various C objects.
gollark: No, I have that stuff done.
gollark: I want a *different* set of "OPERATIONS ON RELEVANT NODE THING" and no HTML generation at the end, and it would be bees to just copy-paste the function here.
gollark: As of now, my code does```nimproc renderToHtml*(input: string): string = let wlRegex = re"\[\[([^:\]]+):?([^\]]+)?\]\]" let opt = CMARK_OPT_UNSAFE or CMARK_OPT_FOOTNOTES or CMARK_OPT_STRIKETHROUGH_DOUBLE_TILDE or CMARK_OPT_TABLE_PREFER_STYLE_ATTRIBUTES # create parser instance let str: cstring = input len: csize_t = len(input).csize_t parser: ParserPtr = cmark_parser_new(opt.cint) if parser == nil: raise newException(CatchableError, "failed to initialize parser") defer: cmark_parser_free(parser) [further initialization stuff] # parse document, get AST cmark_parser_feed(parser, str, len) let doc = cmark_parser_finish(parser) defer: cmark_node_free(doc) if doc == nil: raise newException(CatchableError, "parsing failed - should not occur") # iterate over AST using built-in cmark-gfm AST iteration thing for (evType, node) in cmarkTree(doc): # if it is a text node [OPERATIONS ON RELEVANT NODE THING] let html: cstring = cmark_render_html(doc, opt.cint, cmark_parser_get_syntax_extensions(parser)) defer: free(html) result = $html```

References

  • Feldkamp, Susan (2002). Modern Biology. United States: Holt, Rinehart, and Winston. p. 695. Accessed on May 23, 2006.


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.