| Species |
Cell type |
Cell origin |
Factor |
Condition |
Reference |
Lab |
Download:WIG |
Download:BED |
Download:XLS |
| Human |
LnCaP |
prostate |
H3K4me2 |
vehicle |
Nucleosome dynamics define transcriptional enhancers. Nat Genet 2010 Apr 7;42(4):342-347. |
Myles Brown |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
H3K4me2 |
DHT(4hr) |
Nucleosome dynamics define transcriptional enhancers. Nat Genet 2010 Apr 7;42(4):342-347. |
Myles Brown |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
H3K4me2 |
DHT(16hr) |
Nucleosome dynamics define transcriptional enhancers. Nat Genet 2010 Apr 7;42(4):342-347. |
Myles Brown |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
H3K4me3 |
Vehicle |
Nucleosome dynamics define transcriptional enhancers. Nat Genet 2010 Apr 7;42(4):342-347. |
Myles Brown |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
H3K4me3 |
DHT(4hr) |
Nucleosome dynamics define transcriptional enhancers. Nat Genet 2010 Apr 7;42(4):342-347. |
Myles Brown |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K4me1 |
No treatment |
FoxA1 translates epigenetic signatures into enhancer-driven lineage-specific transcription. Cell 2008 Mar;132:958-970. |
Myles Brown |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3R17me2 |
No treatment |
Coactivator function defines the active estrogen receptor alpha cistrome. Mol Cell Biol 2009 Jun;29(12):3413-23. |
Myles Brown |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3R17me2 |
E2(45min) |
Coactivator function defines the active estrogen receptor alpha cistrome. Mol Cell Biol 2009 Jun;29(12):3413-23. |
Myles Brown |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K9ac |
No treatment |
Integrative genome-wide expression analysis bears evidence of estrogen receptor-independent transcription in heregulin-stimulated MCF-7 cells. PLoS One 2008 Mar 19;3(3):e1803. |
Myles Brown |
Download |
Download |
Download |
| Mouse |
bone marrow-derived macrophages |
hematopoietic stem cell |
H3K4me1 |
No treatment |
Simple combinations of lineage-determining transcription factors prime cis-regulatory elements required for macrophage and B cell identities. Mol Cell 2010 May 28;38(4):576-89. |
Christopher Glass |
Download |
Download |
Download |
| Mouse |
LXRa/b-/- bone marrow-derived macrophages |
hematopoietic stem cell |
H3K4me1 |
No treatment |
Simple combinations of lineage-determining transcription factors prime cis-regulatory elements required for macrophage and B cell identities. Mol Cell 2010 May 28;38(4):576-89. |
Christopher Glass |
Download |
Download |
Download |
| Mouse |
thioglycollate-elicited peritoneal macrophages |
hematopoietic stem cell |
H3K4me1 |
No treatment |
Simple combinations of lineage-determining transcription factors prime cis-regulatory elements required for macrophage and B cell identities. Mol Cell 2010 May 28;38(4):576-89. |
Christopher Glass |
Download |
Download |
Download |
| Mouse |
thioglycollate-elicited peritoneal macrophages |
hematopoietic stem cell |
H3K4me3 |
No treatment |
Simple combinations of lineage-determining transcription factors prime cis-regulatory elements required for macrophage and B cell identities. Mol Cell 2010 May 28;38(4):576-89. |
Christopher Glass |
Download |
Download |
Download |
| Mouse |
B cell |
hematopoietic stem cell |
H3K4me1 |
No treatment |
Simple combinations of lineage-determining transcription factors prime cis-regulatory elements required for macrophage and B cell identities. Mol Cell 2010 May 28;38(4):576-89. |
Christopher Glass |
Download |
Download |
Download |
| Mouse |
B cell |
hematopoietic stem cell |
H3K4me3 |
No treatment |
Simple combinations of lineage-determining transcription factors prime cis-regulatory elements required for macrophage and B cell identities. Mol Cell 2010 May 28;38(4):576-89. |
Christopher Glass |
Download |
Download |
Download |
| Mouse |
PUER cells |
hematopoietic stem cell |
H3K4me1 |
Tamoxifen(0hr) |
Simple combinations of lineage-determining transcription factors prime cis-regulatory elements required for macrophage and B cell identities. Mol Cell 2010 May 28;38(4):576-89. |
Christopher Glass |
Download |
Download |
Download |
| Mouse |
PUER cells |
hematopoietic stem cell |
H3K4me1 |
Tamoxifen(1hr) |
Simple combinations of lineage-determining transcription factors prime cis-regulatory elements required for macrophage and B cell identities. Mol Cell 2010 May 28;38(4):576-89. |
Christopher Glass |
Download |
Download |
Download |
| Mouse |
PUER cells |
hematopoietic stem cell |
H3K4me1 |
Tamoxifen(24hr) |
Simple combinations of lineage-determining transcription factors prime cis-regulatory elements required for macrophage and B cell identities. Mol Cell 2010 May 28;38(4):576-89. |
Christopher Glass |
Download |
Download |
Download |
| Mouse |
PU.1-/- myloid cell |
hematopoietic stem cell |
H3K4me1 |
No treatment |
Simple combinations of lineage-determining transcription factors prime cis-regulatory elements required for macrophage and B cell identities. Mol Cell 2010 May 28;38(4):576-89. |
Christopher Glass |
Download |
Download |
Download |
| Human |
NB4 cells |
hematopoietic stem cell |
H3K9K14ac |
No treatment |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
NB4 cells |
hematopoietic stem cell |
H3K9K14ac |
ATRA(24hr) |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
NB4 cells |
hematopoietic stem cell |
H3K27me3 |
No treatment |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
NB4 cells |
hematopoietic stem cell |
H3K27me3 |
ATRA(24hr) |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
NB4 cells |
hematopoietic stem cell |
H3K9me3 |
No treatment |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
NB4 cells |
hematopoietic stem cell |
H3K9me3 |
ATRA(24hr) |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
APL164 cells |
hematopoietic stem cell |
H3K9K14ac |
No treatment |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
APL164 cells |
hematopoietic stem cell |
H3K27me3 |
No treatment |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
APL164 cells |
hematopoietic stem cell |
H3K9K14ac |
ATRA(48hr) |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
APL164 cells |
hematopoietic stem cell |
H3K27me3 |
ATRA(48hr) |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
MR4 cells |
hematopoietic stem cell |
H3K9me3 |
No treatment |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
MR4 cells |
hematopoietic stem cell |
H3K9K14ac |
ATRA(24hr) |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
UPR9 cells |
hematopoietic stem cell |
H3K9K14ac |
Zinc(5hr) |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
UPR9 cells |
hematopoietic stem cell |
H3K9K14ac |
No treatment |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
UPR9 cells |
hematopoietic stem cell |
H3K27me3 |
No treatment |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
UPR9 cells |
hematopoietic stem cell |
H3K27me3 |
Zinc(5hr) |
PML-RARalpha/RXR alters the epigenetic landscape in acute promyelocytic leukemia. Cancer Cell 2010 Feb 17;17(2):173-85. |
Hendrik Stunnenberg |
Download |
Download |
Download |
| Human |
VCaP |
prostate |
H3K9me3 |
EtOH(16hr) |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
VCaP |
prostate |
H3K9me3 |
R1881(16hr) |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
VCaP |
prostate |
H3K4me3 |
EtOH(16hr) |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
VCaP |
prostate |
H3K4me3 |
R1881(16hr) |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
VCaP |
prostate |
H3K27me3 |
EtOH(16hr) |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
VCaP |
prostate |
H3K27me3 |
R1881(16hr) |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
VCaP |
prostate |
H3K9me3 |
regular medium |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
VCaP |
prostate |
H3K4me3 |
regular medium |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
VCaP |
prostate |
H3K27me3 |
regular medium |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
VCaP |
prostate |
Pan-H3 |
regular medium |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
VCaP |
prostate |
H3K36me3 |
regular medium |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
VCaP |
prostate |
Ace_H3 |
regular medium |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
VCaP |
prostate |
H3K4me1 |
regular medium |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
VCaP |
prostate |
H3K4me2 |
regular medium |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
H3K9me3 |
EtOH(16hr) |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
H3K9me3 |
R1881(16hr) |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
H3K27me3 |
EtOH(16hr) |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
H3K27me3 |
R1881(16hr) |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
H3K4me3 |
EtOH(16hr) |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
CS57.LnCaP |
prostate |
H3K4me3 |
EtOH(16hr) |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
H3K4me3 |
R1881(16hr) |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
CS58.LnCaP |
prostate |
H3K4me3 |
R1881(16hr) |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
H3K9me3 |
regular medium |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
H3K4me3 |
regular medium |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
H3K36me3 |
regular medium |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
Ace_H3 |
regular medium |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
H3K4me1 |
regular medium |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
LnCaP |
prostate |
H3K4me2 |
regular medium |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
metastatic prostate cancer tissue |
prostate |
H3K4me3 |
No treatment |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
metastatic prostate cancer tissue |
prostate |
H3K9me3 |
No treatment |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Human |
metastatic prostate cancer tissue |
prostate |
H3K27me3 |
No treatment |
An integrated network of androgen receptor, polycomb, and TMPRSS2-ERG gene fusions in prostate cancer progression. Cancer Cell 2010 May 18;17(5):443-454. |
Arul Chinnaiyan |
Download |
Download |
Download |
| Mouse |
3T3-L1 adipocytes |
adipocytes |
H3K9ac |
No treatment |
Cell-specific determinants of peroxisome proliferator-activated receptor gamma function in adipocytes and macrophages. Mol Cell Biol 2010 May;30(9):2078-89. |
Mitch Lazar |
Download |
Download |
Download |
| Mouse |
3T3-L1 cells |
pre-adipocytes |
H3K9ac |
IBMX-DX-Insulin(0hr) |
Propagation of adipogenic signals through an epigenomic transition state. Genes Dev 2010 May 15;24(10):1035-44. |
Mitch Lazar |
Download |
Download |
Download |
| Mouse |
3T3-L1 cells |
pre-adipocytes |
H3K9ac |
IBMX-DX-Insulin(24hr) |
Propagation of adipogenic signals through an epigenomic transition state. Genes Dev 2010 May 15;24(10):1035-44. |
Mitch Lazar |
Download |
Download |
Download |
| Mouse |
3T3-L1 cells |
pre-adipocytes |
H3K9ac |
IBMX-DX-Insulin(240hr) |
Propagation of adipogenic signals through an epigenomic transition state. Genes Dev 2010 May 15;24(10):1035-44. |
Mitch Lazar |
Download |
Download |
Download |
| Mouse |
liver cells |
liver |
H3K4me1 |
No treatment |
Locus co-occupancy, nucleosome positioning, and H3K4me1 regulate the functionality of FOXA2-, HNF4A-, and PDX1-bound loci in islets and liver. Genome Res 2010 Sep 30;20:1037-1051. |
Pamela Hoodless |
Download |
Download |
Download |
| Mouse |
islet cells |
islet |
H3K4me1 |
No treatment |
Locus co-occupancy, nucleosome positioning, and H3K4me1 regulate the functionality of FOXA2-, HNF4A-, and PDX1-bound loci in islets and liver. Genome Res 2010 Sep 30;20:1037-1051. |
Pamela Hoodless |
Download |
Download |
Download |
| Mouse |
liver cells |
liver |
H3K4me3 |
No treatment |
Locus co-occupancy, nucleosome positioning, and H3K4me1 regulate the functionality of FOXA2-, HNF4A-, and PDX1-bound loci in islets and liver. Genome Res 2010 Sep 30;20:1037-1051. |
Pamela Hoodless |
Download |
Download |
Download |
| Mouse |
islet cells |
islet |
H3K4me3 |
No treatment |
Locus co-occupancy, nucleosome positioning, and H3K4me1 regulate the functionality of FOXA2-, HNF4A-, and PDX1-bound loci in islets and liver. Genome Res 2010 Sep 30;20:1037-1051. |
Pamela Hoodless |
Download |
Download |
Download |
| Mouse |
thioglycollate-elicited peritoneal macrophages |
hematopoietic stem cell |
H3K9ac |
No treatment |
Cell-specific determinants of peroxisome proliferator-activated receptor gamma function in adipocytes and macrophages. Mol Cell Biol 2010 May;30(9):2078-89. |
Mitch Lazar |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K4me2 |
EtOH(6hr) |
TRIM24 links a non-canonical histone signature to breast cancer. Nature 2010 Dec 16;468(7326):927-32. |
Michelle Barton |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K4me2 |
E2(6hr) |
TRIM24 links a non-canonical histone signature to breast cancer. Nature 2010 Dec 16;468(7326):927-32. |
Michelle Barton |
Download |
Download |
Download |
| Human |
Caco-2(proliferating) |
intestine |
H3K4me2 |
No treatment |
Differentiation-specific histone modifications reveal dynamic chromatin interactions and partners for the intestinal transcription factor CDX2. Dev Cell 2010 Nov 16;19(5):713-26. |
Ramesh Shivdasani |
Download |
Download |
Download |
| Human |
Caco-2(differentiated) |
intestine |
H3K4me2 |
No treatment |
Differentiation-specific histone modifications reveal dynamic chromatin interactions and partners for the intestinal transcription factor CDX2. Dev Cell 2010 Nov 16;19(5):713-26. |
Ramesh Shivdasani |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K27me3 |
E2(3hr) |
Integrative model of genomic factors for determining binding site selection by estrogen receptor-a. Mol Syst Biol 2010 Dec 21;6:456. |
Edison Liu |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K27me3 |
DMSO(3hr) |
Integrative model of genomic factors for determining binding site selection by estrogen receptor-a. Mol Syst Biol 2010 Dec 21;6:456. |
Edison Liu |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K9me3 |
E2(3hr) |
Integrative model of genomic factors for determining binding site selection by estrogen receptor-a. Mol Syst Biol 2010 Dec 21;6:456. |
Edison Liu |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K9me3 |
DMSO(3hr) |
Integrative model of genomic factors for determining binding site selection by estrogen receptor-a. Mol Syst Biol 2010 Dec 21;6:456. |
Edison Liu |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K4me1 |
E2(3hr) |
Integrative model of genomic factors for determining binding site selection by estrogen receptor-a. Mol Syst Biol 2010 Dec 21;6:456. |
Edison Liu |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K4me1 |
DMSO(3hr) |
Integrative model of genomic factors for determining binding site selection by estrogen receptor-a. Mol Syst Biol 2010 Dec 21;6:456. |
Edison Liu |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K4me3 |
E2(3hr) |
Integrative model of genomic factors for determining binding site selection by estrogen receptor-a. Mol Syst Biol 2010 Dec 21;6:456. |
Edison Liu |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K4me3 |
DMSO(3hr) |
Integrative model of genomic factors for determining binding site selection by estrogen receptor-a. Mol Syst Biol 2010 Dec 21;6:456. |
Edison Liu |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K9ac |
E2(3hr) |
Integrative model of genomic factors for determining binding site selection by estrogen receptor-a. Mol Syst Biol 2010 Dec 21;6:456. |
Edison Liu |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K9ac |
DMSO(3hr) |
Integrative model of genomic factors for determining binding site selection by estrogen receptor-a. Mol Syst Biol 2010 Dec 21;6:456. |
Edison Liu |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K14ac |
E2(3hr) |
Integrative model of genomic factors for determining binding site selection by estrogen receptor-a. Mol Syst Biol 2010 Dec 21;6:456. |
Edison Liu |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K14ac |
DMSO(3hr) |
Integrative model of genomic factors for determining binding site selection by estrogen receptor-a. Mol Syst Biol 2010 Dec 21;6:456. |
Edison Liu |
Download |
Download |
Download |
| Human |
T47D |
breast |
H3K4me1 |
E2(45min-3hr) |
Integrative model of genomic factors for determining binding site selection by estrogen receptor-a. Mol Syst Biol 2010 Dec 21;6:456. |
Edison Liu |
Download |
Download |
Download |
| Human |
T47D |
breast |
H3K4me1 |
DMSO(45min-3hr) |
Integrative model of genomic factors for determining binding site selection by estrogen receptor-a. Mol Syst Biol 2010 Dec 21;6:456. |
Edison Liu |
Download |
Download |
Download |
| Human |
MCF-7 |
breast |
H3K4me3 |
E2(45min) |
An oestrogen-receptor-alpha-bound human chromatin interactome. Nature 2009 Nov 5;462(7269):58-64. |
Yijun Ruan |
Download |
Download |
Download |


CHOOZ- calcium carbonate gum, chewing
Insight Pharmaceuticals
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
For relief of:
Ask a doctor or pharmacist before use if you are taking a prescription drug. Antacids may interact with certain prescription drugs.
Distributed by:
INSIGHT Pharmaceuticals Corp.
Langhorne, PA 19047-1749
Visit us at www.insightpharma.com
CHOOZ®
ANTACID/CALCIUM SUPPLEMENT
CALCIUM CARBONATE
Works fast to relieve
acid indigestion, sour stomach,
heartburn and upset stomach
SAFETY SEALED: Do not use if foil
imprinted with "Chooz" is torn or missing.
Great Tasting
Calcium Rich
Sugar Free Formula
12 Mint Gum Pieces
|
CHOOZ
calcium carbonate gum, chewing | ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
|
| Labeler - Insight Pharmaceuticals (176792315) |


Html
Make creative content decisions that can improve Search Engine Optimization and drive traffic to your site.
I am Michael Izaguirre, a full stack web developer based in New York City. I am always on the lookout for exciting new projects to work on and look forward to the challenge of bringing your visions to the internet. Your satisfaction is of the utmost importance to me and I will work tirelessly to create the perfect Website for you.
Make creative content decisions that can improve Search Engine Optimization and drive traffic to your site.
Implement intelligent design decisions to demonstrate your creativity to your visitors.
Design that creates dynamic changes to the appearance of a website, depending on the screen size and orientation of the device being used to view it.
Enable digital exchange of goods and services between you and clientele.
Deliver your content over the Web. Managing security and database optimization.


ENDS TODAY:
EXTRA
25%
OFF
FINAL SALE ITEMS*
EXCLUSIVELY AT JCREW.COM.
USE C0DE TINSEL.
SHOP WOMEN, MEN, GIRLS & BOYS
*Offer valid on the purchase of sale items at jcrew.com from December 22, 2012, 12:01am ET through December 26, 2012, 11:59pm ET. Offer not valid in J.Crew or J.Crew Factory stores, at jcrewfactory.com or on phone orders. Offer does not apply to previous purchases or the purchase of gift cards and cannot be redeemed for cash or combined with any other promotion. To redeem, enter code TINSEL in the promo code box at checkout. Limit one promo code per order. Offer valid in the U.S. and Canada only. Terms of offer are subject to change.
To subscribe from the email list, click here.
http://e.jcrew.com/a/tBQ2vTUBgTeL6B8v1iCNs5LxiJT/sub-12?d_source=EMSL06562
To unsubscribe from the email list, click here.
<EMAIL_ADDRESS>J.Crew Customer Relations | One Ivy Crescent | Lynchburg, VA 24513-1001


REDLINE aka DEADLINE
Canada/Netherlands. 1997. Director - Tibor Takacs, Screenplay - Takacs & Brian Irving, Producer - Irving, Photography - Zoltan David, Music - Guy Zerafa, Visual Effects - Randall William Cook, Special Effects Supervisor - Jak Osmond, Production Design - Istvan Ocztos. Production Company - Nu Image/Mondofin/1204019 Ontario Inc. Rutger Hauer (John Anderson Wade), Yvonne Scio (Marina K/Katya), Mark Dacascos (Merrick), Randall William Cook (Special Prosecutor Vanya), Michael Mehlman (Serge), Patrick Dreikauss (Mishka)
Plot: John Anderson Wade is shot and left for dead by his partner Merrick during an operation smuggling contraband into a near-future Russia. However Wade is revived from the dead by the special police prosecutor on orders of The President. Allowed to escape, Wade heads after Merrick, who has trying to take over Moscow's crime syndicates, to seek revenge. But as he pursues Merrick, Wade finds himself caught in games between The President, the Special Prosecutor and the crime syndicates.
Canada's Tibor Takacs is a director of modest B-films that has in the past proven capable of quietly surprising with efforts like `I, Madman' aka `Hardcover' (1989), `The Gate' (1987) and its even better sequel `Gate II' (1990) being better than they might have seemed. Like a number of recent films, `Redline' takes a post-Soviet Russia as its setting. Takacs creates an abundance of atmosphere in the milieu of a Russian Mafia-dominated underworld - journeys through bathhouses, street markets, chic nightclubs, sports clubs where naked contestants engage in combat - suggesting both at once a world of decadence and near-anarchy. The interiors, shot in cavernous, Soviet Politburo-styled buildings, add a dazzling sense of verisimilitude - even if, ironically, the film was shot in Hungary. Set amid this are some neat science-fictional devices - flying spy satellites, virtual reality torture, advertisements for Hawaiian holiday resorts in Crimea. Although by and large the film doesn't seem that interested in its Cyberpunk background - writers like William Gibson, Jack Womack or Bruce Sterling would have had field days with this milieu. In fact with little rewriting the plot could have easily have worked as a standard action film without the need for any future setting. Takacs quotes other films - the graveyard of fallen Communist statues from `GoldenEye' (1995); an amusing parody of the oft-copied Odessa Steps sequence from Eisenstein's `Battleship Potemkin' (1925), recreated on a tv show called `Moscow's Deadliest Criminals'. Italian actress Yvonne Scio makes quite a promising English-language debut as the heroine.
Copyright 1998 Richard Scheib
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Hello all.
I want to first talk about this weekend and what is happening. As you may all have known, I missed the release of Jupiter Fishes last weekened. I want to
apologize to everyone who has been affected by this and I promise that this will never happen again! And to make up for this loss I have decided to release
3 articles today. Yes you hear me right, 3 articles. One of which you might've already read, Jupiter Fishes. The remaining two is this one, Saturn Dinsaurs
and The Void.
I already wrote the transcript for Saturn Dinosaurs already, that was this weeks plan. But I am a loser and missed the deadline, but I will take the fall,
so here is Saturn Dinosaurs
As you all are aware, Saturn is one of two gas giants in our solar system. So as for Jupiter, I would only make sense that the fishes live on Jupiter, it
has no tangible form on which the fish can swim through similarly like water, so how do Dinosaurs live on the gas giant Saturn? It's quite simple actually,
first of all the entirety of Saturns rings is actually all dinosaur eggs, yes all of it, they heat in the sun, to stay warm in the void, they run over it,
but do not crack it, they are light on their toes, but do not crack the egg, wonderful beast they are, able to frolic in the void with interacting with
anything else. The eggs hatch in the darkness behind the moon, away from predators. Then make a daring trip back to Saturn, with help from The Void.
The Dinosaurs survive on Saturn in a very unique fasion, they are all Pterodactyls in one way or another. Think of it like this, think of the movie Jurassic
Park, think of all the Dinosaurs in Jurrasic Park, Dilophosaurus, Stegosaurus, Triceratops, Velociraptor, Tyrannosaurus, etc. They all have mutated in a unique
way to the likes of which I have never seen. Their major legs for walking, either two or four, has completely gone away, they only have two small legs meant
for picking things up and set things down, but they no longer have walking legs. They have also grown wings, like full wings like a Pterodactyl, up to an
average of 10 ft wingspan.
This is probably one of the most interesting mutations I have seen to adapt to the planet, the Dinosaurs are the most interesting thing about all of the space
species, They don't follow any logic that I have seen, but yet there they are.  But the Dinosaur is probably the most destructive of all of the creatures to
exists.
Now a follow up to this is how the Dinosaur reached the planet Saturn, now I have been trying to connect the dots the best I could to this, the details are
a bit iffy allow me to explain. So we all know of the Dinosaurs that lived on Earth, right? And how that they were all killed by none other than the big
asteroid that ended up hitting straight onto the Earth, then making all Dinosaurs extinct. Well, my working theory is this, the Dinosaurs on Saturn, are
completely different from the ones on Earth.
Allow me to explain, Saturn Dinosaurs have a similiar but almost completely different set of genomes. The DNA within Saturn is a complete different set,
completely unrecognizable amino set, yet its ordered in the same way. Except for the top and middle of gene 16 which control legs and wings. But they
are completely identical. With these data we can confirm that after the asteroid hit the earth, the Earth Dinosaurs skeleton and flesh, floated themselves
from Earth to Saturn, and infusing the bones and flesh with its atmosphere, the reaction of the elements started life again anew on the planet of Saturn.

Thank you for reading! the void.


THE ODD COUPLE (Female Version)
February 15-18, 1996
Directed by Michael Garner
Assistant to the Director - Linnea Hall McCain
Stage Manager - Catherine West
THE CAST
Sylvie - Joy Fagan
Mickey - Carrie Johnikin
Renee - Linda Pitts
Vera - Barbara Tillery
Olive Madison - Cathy Merrikin
Florence Ungar - Susan Thomas
Manolo - Mark Pierce
Jesus - Roger Russell


REQUIEM FOR A DREAM (Artisan) Starring: Ellen Burstyn, Jared Leto, Jennifer Connelly, Marlon Wayans, Christopher McDonald. Screenplay: Hubert Selby, Jr. and Darren Aronofsky, based on the novel by Selby. Producers: Eric Watson and Palmer West. Director: Darren Aronofsky.  Reviewed by Scott Renshaw.
If it was director Darren Aronofsky's goal to use REQUIEM FOR A DREAM as a variation on A CLOCKWORK ORANGE's Ludivico treatment ... well, mission accomplished. His adaptation of Huber Selby, Jr.'s novel is a dazzling multi-media assault, a tale of degradation and shattered lives that will make you feel as though you need a brain enema to cleanse your memory of its most disturbing images. Aronofsky's singularly inventive visual style, combined with one of the year's most chillingly evocative scores by Clint Mansell and the Kronos Quartet, dares you not to look away, lest you miss something potentially extraordinary. REQUIEM FOR A DREAM is arresting, compelling and frequently flat-out horrifying.
So why isn't it one of the best films of the year, if not _the_ best film? Because for all of Aronofsky's stylistic prowess, and all the film's visceral power, this narrative falls into an all-too-common trap: It spells out too much of the subtext, and doesn't trust the viewer to get the point without a good-old fashioned bludgeoning. The story focuses on four characters in search of an exit in Brooklyn. Sara Goldfarb (Ellen Burstyn) is a widow who spends her days eating chocolates and watching info-mercials in her Coney Island apartment. Her only son Harry (Jared Leto) is a heroin addict who keeps pawning Sara's television to fix himself, his girlfriend Marion (Jennifer Connelly) and best pal Tyrone (Marlon Wayans). Harry and company have a plan to become independent by going into the dealing business themselves, a plan they think will make all their dreams come true. Sara, meanwhile, may have a chance to fulfill her own dream of being a contestant on a TV game show, but first she'll have to lose a lot of weight to get into her favorite red dress -- even if that means taking a few habit-forming diet pills.
During the portion of REQUIEM FOR A DREAM when these characters still have hope that their dreams may come true, it's a dynamic film experience. Aronofsky eschews the typical fetishistic shots of injections, substituting rapid-fire montages to represent the characters' respective fixes. He gets inside the highs and lows, sometimes with sound (a depressant turning words from the television into a gradually slowing record), sometimes with images (a fish-eye lens distorting Sara into a startling grotesquerie). There are brilliant moments both when the film is at its most kinetic (Sara's speed-fuelled cleaning jags) and at its most serene (Harry and Marion sharing a tender split-screen moment in which their physical connection is disturbingly disjointed). As he demonstrated in 1998's PI, Aronofsky is one of the few true visionaries making American movies.
There's style to spare in REQUIEM FOR A DREAM, but there's not as much substance as there should be, and what substance there is becomes too blatant in its presentation. Early in the film, an intriguing theme develops as we see Sara indulge in her sweets and self-help TV: Even as she frets over Harry's addiction, it's clear she seeks some mood-altering quick fixes of her own. But Aronofsky spells it out when he has Harry note, "What's mom's fix? Television!" Similarly, a subtle moment in which Sara is given a preferred seat among the women outside her building -- just because she may be on television in the near future -- is underlined by Sara's comment on her royal treatment. Every time REQUIEM FOR A DREAM is on the verge of being about more than its characters' inevitable spiral into agony, it quickly offers the Cliff's Notes version and moves you along to the next moment of personal hell.
 As splendidly acted as REQUIEM FOR A DREAM is -- and every one of the four principals is very good, particularly Burstyn -- it's ultimately a film that pays far more attention to the things drugs does to these people than what it takes away from them. It becomes such a relentless parade of dignity-destroying acts and physical disintegration that the broadly sketched characterizations vanish in the wake of their misery. It conditions you to feel repulsed by what drugs do to these people without allowing you to feel for them as people. This is spectacularly staged and marvelously performed "Just Say No" melodrama -- REEFER MADNESS for the art house set. It's impossible not to get REQUIEM FOR A DREAM's message, and nearly impossible not to applaud the messenger.
On the Renshaw scale of 0 to 10 dream escapes: 6.
Visit Scott Renshaw's Screening Room http://www.inconnect.com/~renshaw/ *** Subscribe to receive new reviews directly by email! See the Screening Room for details, or reply to this message with subject "Subscribe".
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Ecgsyn¶
New in version 0.6.
This functions produces a synthesized ECG signal. User can control following parameters: mean heart rate, number of beats, sampling frequency, waveform morphology (P, Q, R, S, and T timing, amplitude,and duration), standard deviation of the RR interval, LF/HF ratio.
Copyright (c) 2003 by Patrick McSharry & Gari Clifford, All Rights Reserved [1].
More information can be found in PhysionNet https://www.physionet.org/physiotools/ecgsyn/
Example Usage¶
Simple example follows
x, peaks = ecgsyn(n=10, hrmean=50, hrstd=3, sfecg=128)
The returned variable x contains the synthetic ECG series.
References¶
| [1] | Patrick E McSharry, Gari D Clifford, Lionel Tarassenko, and Leonard A Smith. A dynamical model for generating synthetic electrocardiogram signals. IEEE transactions on biomedical engineering, 50(3):289–294, 2003. |
Function Documentation¶
-
signalz.generators.ecgsyn.
annotate_peaks
(x, thetap, sfecg)[source]¶ This function annotates PQRST peaks (P=1, Q=2, R=3, S=4, T=5).
-
signalz.generators.ecgsyn.
derfunc
(t, x, rr, sfint, ti, ai, bi)[source]¶ Derivations of the ECG function.
-
signalz.generators.ecgsyn.
ecgsyn
(sfecg=256, n=256, hrmean=60.0, hrstd=1, lfhfratio=0.5, sfint=512, ti=[-70, -15, 0, 15, 100], ai=[1.2, -5, 30, -7.5, 0.75], bi=[0.25, 0.1, 0.1, 0.1, 0.4])[source]¶ ECGSYN - realistic ecg generator.
Kwargs:
- sfecg : ECG sampling frequency (int), it Hz
- N : approaximate number of heart beats (int)
- hrmean : mean heart rate (float) in beats per minute
- hrstd : standard deviation of heart rate (float) in beats per minute
- ‘lfhfration : LF/HF ratio (float)
- sfint : internal sampling frequency (int) in Hz
- ti : angles of PQRST extrema (1d array of size 5) in degrees
- ai : z-position of PQRST extrema (1d array of size 5)
- bi : Gaussian width of peaks (1d array of size 5)
Returns:
- x : ECG values in mV
- peaks: labels for PQRST peaks (P=1, Q=2, R=3, S=4, T=5 and 0 elsewhere)


#include <PCIeAPI.h>
Public Types | |
| enum | RunTimeCtrl_t { NONE = 0, VERBOSE = 1, DEBUG1 = 2, IGNORE_VER_ERR = 4, ALL = 0xffffffff } |
Public Member Functions | |
| PCIeAPI () | |
| virtual | ~PCIeAPI (void) |
| const char * | getVersionStr (void) |
Static Public Member Functions | |
| void | setRunTimeCtrl (RunTimeCtrl_t a) |
| void | clrRunTimeCtrl (RunTimeCtrl_t a) |
Static Public Attributes | |
| uint32_t | RunTimeCtrl = PCIeAPI::NONE |
This class should be instantiated when using the DLL so that the system logging can be initialized. The API uses macros DEBUGSTR() to print run-time info to the system log via syslog() calls. First the logger needs to be opened, and that is done in this constructor (can closed in the destructor).
Definition at line 39 of file PCIeAPI.h.
|
|
Bitmaps for controlling run-time behavior of the DLL |
|
|
Construct an interface to the PCIeAPI DLL libarary. Version info and run-time control is accessable through an object of this class.
Definition at line 44 of file PCIeAPI.cpp. |
|
|
Close a PCIeAPI DLL library. Definition at line 68 of file PCIeAPI.cpp. |
|
|
Clear (disable) a specific run-time option during execution Definition at line 59 of file PCIeAPI.cpp. References RunTimeCtrl. |
|
|
Return the build version and comments associated with the library. Returns a pointer to a C string. Definition at line 80 of file PCIeAPI.cpp. |
|
|
Set a specific fucntional mode durint execution (like verbose printing to stdout) Definition at line 53 of file PCIeAPI.cpp. References RunTimeCtrl. |
|
|
Global control over PCIeAPI lib operations, such as verbose printing during running. Definition at line 31 of file PCIeAPI.cpp. Referenced by clrRunTimeCtrl(), and setRunTimeCtrl(). |


Immunity from Liability
In accordance with Utah Health Care Malpractice Act and Healthcare Providers Immunity from Liability Act, Section 5B-13-3, in exchange for uncompensated health care, I give my consent to treatment and to waive any right to sue for professional negligence except for acts or ommissions that are grossly negligent or are willful and wanton.
No Show Policy
We understand that circumstances may arise that do not allow you to keep your appointment. Please remember to be curtious to us and other patient by calling at least 1 day prior to your appointment to cancel if you cannot come. This will allow us to give your appointment to someone else who would like to become a patient at the clinic. We understand that everyone forgets once in a while; however, more than 3 "no shows" will result in our requesting that you find a Walk in Clinic to get your medical care.


RHFL
> Prestige
Prestige
Garrett
1
Stats Behind the Ranking
- Wins Rank:11
- Overall Win % Rank:1
- Avg Points Scored Rank:1
- Playoff App:3
- Playoff Pts:927.7
- Playoff Wins:4
- Champ App:2
- Championships:1
- Prestige Rating:1.183
Sam
2
Stats Behind the Ranking
- Wins Rank:T-1
- Overall Win % Rank:2
- Avg Points Scored Rank:2
- Playoff App:5
- Playoff Pts:882.0
- Playoff Wins:3
- Champ App:1
- Championships:1
- Prestige Rating:1.106
Chandler
3
Stats Behind the Ranking
- Wins Rank:4
- Overall Win % Rank:4
- Avg Points Scored Rank:3
- Playoff App:2
- Playoff Pts:673.4
- Playoff Wins:3
- Champ App:1
- Championships:0
- Prestige Rating:1.048
Jason
4
Stats Behind the Ranking
- Wins Rank:T-1
- Overall Win % Rank:5
- Avg Points Scored Rank:4
- Playoff App:5
- Playoff Pts:959.1
- Playoff Wins:4
- Champ App:2
- Championships:0
- Prestige Rating:1.039
Skully
5
Stats Behind the Ranking
- Wins Rank:14
- Overall Win % Rank:6
- Avg Points Scored Rank:5
- Playoff App:1
- Playoff Pts:481.2
- Playoff Wins:2
- Champ App:1
- Championships:0
- Prestige Rating:1.028
Jenna
6
Stats Behind the Ranking
- Wins Rank:13
- Overall Win % Rank:2
- Avg Points Scored Rank:10
- Playoff App:1
- Playoff Pts:82.8
- Playoff Wins:0
- Champ App:0
- Championships:0
- Prestige Rating:1.027
Ridge
7
Stats Behind the Ranking
- Wins Rank:3
- Overall Win % Rank:7
- Avg Points Scored Rank:11
- Playoff App:5
- Playoff Pts:1,067.8
- Playoff Wins:5
- Champ App:2
- Championships:1
- Prestige Rating:1.019
Chris
8
Stats Behind the Ranking
- Wins Rank:7
- Overall Win % Rank:8
- Avg Points Scored Rank:6
- Playoff App:3
- Playoff Pts:394.7
- Playoff Wins:1
- Champ App:0
- Championships:0
- Prestige Rating:1.015
Scott
9
Stats Behind the Ranking
- Wins Rank:6
- Overall Win % Rank:11
- Avg Points Scored Rank:7
- Playoff App:5
- Playoff Pts:601.8
- Playoff Wins:4
- Champ App:2
- Championships:2
- Prestige Rating:1.014
Krista
10
Stats Behind the Ranking
- Wins Rank:5
- Overall Win % Rank:9
- Avg Points Scored Rank:9
- Playoff App:2
- Playoff Pts:487.5
- Playoff Wins:3
- Champ App:1
- Championships:1
- Prestige Rating:1.002
Spencer
11
Stats Behind the Ranking
- Wins Rank:15
- Overall Win % Rank:13
- Avg Points Scored Rank:8
- Playoff App:0
- Playoff Pts:0.00
- Playoff Wins:0
- Champ App:0
- Championships:0
- Prestige Rating:0.988
Jay
12
Stats Behind the Ranking
- Wins Rank:T-9
- Overall Win % Rank:15
- Avg Points Scored Rank:12
- Playoff App:2
- Playoff Pts:217.3
- Playoff Wins:3
- Champ App:1
- Championships:1
- Prestige Rating:0.979
Hayden
13
Stats Behind the Ranking
- Wins Rank:8
- Overall Win % Rank:14
- Avg Points Scored Rank:13
- Playoff App:3
- Playoff Pts:358.7
- Playoff Wins:1
- Champ App:0
- Championships:0
- Prestige Rating:0.970
Kevin
14
Stats Behind the Ranking
- Wins Rank:T-9
- Overall Win % Rank:10
- Avg Points Scored Rank:14
- Playoff App:2
- Playoff Pts:125.5
- Playoff Wins:0
- Champ App:0
- Championships:0
- Prestige Rating:0.951
Heather
15
Stats Behind the Ranking
- Wins Rank:12
- Overall Win % Rank:12
- Avg Points Scored Rank:16
- Playoff App:1
- Playoff Pts:389.6
- Playoff Wins:2
- Champ App:1
- Championships:0
- Prestige Rating:0.932
Lexi & JoJo
16
Stats Behind the Ranking
- Wins Rank:16
- Overall Win % Rank:16
- Avg Points Scored Rank:15
- Playoff App:0
- Playoff Pts:0.00
- Playoff Wins:0
- Champ App:0
- Championships:0
- Prestige Rating:0.899


English
Math
Tutee Profiles
Progress Reports
Administrator
Data Analysis Team
Modules Team
Tutors
A
B
Modules
arrow_drop_down
Evaluations
Tutees
arrow_drop_down
Members
arrow_drop_down
Export
[Admin] Jakey Fausto
arrow_drop_down
Member Profile
First Name
Last Name
Contact Number
Email Address
Year & Course
Membership
Old
New
Membership
Scholarship
None
Financial Aid
Academic Scholarship
Scholarship
Committee
Administrator
Data Analysis Team
Modules Team
Tutors Team
Committee


Please enter the location of your hotel in the provided space. Or else mark the exact location in the map using the marker, inside the map.


Infinitely scrolling slide show. Something that might be on a product landing page.
[ Github ] [ Example 1 ] [ Example 2 ] [ Example 3 ] [ Example 4 ] [ Example 5 ]
Toggle Slide Show


MNE-Python Homepage¶
Open-source Python package for exploring, visualizing, and analyzing human neurophysiological data: MEG, EEG, sEEG, ECoG, NIRS, and more.
Open-source Python package for exploring, visualizing, and analyzing human neurophysiological data: MEG, EEG, sEEG, ECoG, NIRS, and more.


Created by Carlos Reig Matut / @unstatu
If I have seen further, it is by standing on the shoulders of giants
Isaac Newton
Packagist
New environment


Red Line Pizza
Where you don't have to clean up after yourself
How big do you want that pizza?
Small (12") - $10
Medium (14") - $12
Large (16") - $14
Family (20") - $18
Tell us what to put on it. Or just get cheese.
Each topping is $1.50, no matter what size your pizza is.
Pepperoni
Sausage
Mushrooms
Bacon
Black Olives
Canadian Bacon
Chicken
X-tra Cheese
Anchovies
Bell Peppers
Order Pizza
Total Price
Your pizza is gonna cost $
.
It should be ready in about 45 minutes. Come get it.


Account Settings
Back
Enable Dark Theme
While enabled, your screen will be rendered to have a dark background and light font.


The model built and used for detecting and predicting brain tumors is a 2D CNN with three hidden layer.
It is built with Tensorflow and Keras. The input images (data set is described in the "Data Description" tab) are 240x240x1 the 1 indicates 1 channel and converted into grayscale.
The output is just a 1D array the length of the samples, for example if input 100 images are inputted, the model would output 100 predictions of 1 or 0 for whether or not there is a tumor.
Number of Epoch: 25
Learning Rate: 0.01
Accuracy: 0.60784314


Home
About
Products
Blog
Contact
Oh no...Looks like we're not quite ready for you yet
Please check back soon for exciting annoucements


Hi!!
My name is Tanmay Bansal
My registration number is 19BCE0421
I live in Mumbai
I study in Vellore Institute of Technology


--- title: "Default" description:
Ikon is a new author card layout with details about the author.
Showcase yourself on your blog or your team on the web app "about" page/section by creating Ikon cards.
To create ikon within your page, just add a div
tag with evo_c-ikon
class and then add one or more child div
tags with evo_c-ikon__member
within it. Finally
add the content as shown in the code markup below. Make sure to add proper js-hook CSS classes for proper JS
function. Check out all the js-hooks (js-evo-c-ikon
, js-evo-c-ikon-member
,
js-evo-c-ikon-member-info
and js-evo-c-ikon-close-btn
) within the code markup shown below.
You can add as many evo_c-ikon__member
(s) as you like on your your website.
Check out the example code below by clicking on "Show Markup".
Hover over the names of the random authors below to see how ikon works:
author: Aashish Nagpal category: evolution type: ikon card order: 1 ---Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam a semper sem. Ut pellentesque libero ut ultricies vehicula. Morbi suscipit felis nulla, luctus ornare nunc fringilla et
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam a semper sem. Ut pellentesque libero ut ultricies vehicula. Morbi suscipit felis nulla, luctus ornare nunc fringilla et
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam a semper sem. Ut pellentesque libero ut ultricies vehicula. Morbi suscipit felis nulla, luctus ornare nunc fringilla et


A mutation analysis tool that discovers cancer driver genes with frequent mutations in protein signalling sites such as post-translational modifications (phosphorylation, ubiquitination, etc). The Poisson generalised linear regression model identifies genes where cancer mutations in signalling sites are more frequent than expected from the sequence of the entire gene. Integration of mutations with signalling information helps find new driver genes and propose candidate mechanisms to known drivers. Reference: Systematic analysis of somatic mutations in phosphorylation signaling predicts novel cancer drivers. Juri Reimand and Gary D Bader. Molecular Systems Biology (2013) 9:637 <doi:10.1038/msb.2012.68>.
| Version: | 1.0.0 |
| Depends: | R (≥ 3.0) |
| Imports: | stats, parallel, MASS |
| Published: | 2017-08-23 |
| Author: | Juri Reimand [aut, cre] |
| Maintainer: | Juri Reimand <juri.reimand at utoronto.ca> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | no |
| CRAN checks: | ActiveDriver results |
| Reference manual: | ActiveDriver.pdf |
| Package source: | ActiveDriver_1.0.0.tar.gz |
| Windows binaries: | r-devel: ActiveDriver_1.0.0.zip, r-release: ActiveDriver_1.0.0.zip, r-oldrel: ActiveDriver_1.0.0.zip |
| OS X binaries: | r-release: ActiveDriver_1.0.0.tgz, r-oldrel: ActiveDriver_1.0.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=ActiveDriver to link to this page.


Describes the parameters for a joint limit. More...
#include <PxJointLimit.h>
Public Member Functions | |
| PxJointLimitParameters () | |
| PxJointLimitParameters (const PxJointLimitParameters &p) | |
| PX_INLINE bool | isValid () const |
| Returns true if the current settings are valid. More... | |
| PX_INLINE bool | isSoft () const |
Public Attributes | |
| PxReal | restitution |
| Controls the amount of bounce when the joint hits a limit. More... | |
| PxReal | bounceThreshold |
| PxReal | stiffness |
| if greater than zero, the limit is soft, i.e. a spring pulls the joint back to the limit More... | |
| PxReal | damping |
| if spring is greater than zero, this is the damping of the limit spring More... | |
| PxReal | contactDistance |
| the distance inside the limit value at which the limit will be considered to be active by the solver. As this value is made larger, the limit becomes active more quickly. It thus becomes less likely to violate the extents of the limit, but more expensive. More... | |
Protected Member Functions | |
| ~PxJointLimitParameters () | |
Describes the parameters for a joint limit.
Limits are enabled or disabled by setting flags or other configuration parameters joints, see the documentation for specific joint types for details.
|
inline |
|
inline |
|
inlineprotected |
|
inline |
Returns true if the current settings are valid.
References damping, PxIsFinite(), restitution, and stiffness.
Referenced by PxJointLinearLimit::isValid(), PxJointLinearLimitPair::isValid(), PxJointAngularLimitPair::isValid(), PxJointLimitCone::isValid(), and PxJointLimitPyramid::isValid().
| PxReal PxJointLimitParameters::bounceThreshold |
determines the minimum impact velocity which will cause the joint to bounce
| PxReal PxJointLimitParameters::contactDistance |
the distance inside the limit value at which the limit will be considered to be active by the solver. As this value is made larger, the limit becomes active more quickly. It thus becomes less likely to violate the extents of the limit, but more expensive.
The contact distance should be less than the limit angle or distance, and in the case of a pair limit, less than half the distance between the upper and lower bounds. Exceeding this value will result in the limit being active all the time.
Making this value too small can result in jitter around the limit.
Default: depends on the joint
Referenced by PxJointAngularLimitPair::PxJointAngularLimitPair(), PxJointLimitCone::PxJointLimitCone(), PxJointLimitPyramid::PxJointLimitPyramid(), PxJointLinearLimit::PxJointLinearLimit(), and PxJointLinearLimitPair::PxJointLinearLimitPair().
| PxReal PxJointLimitParameters::damping |
if spring is greater than zero, this is the damping of the limit spring
Range: [0, PX_MAX_F32)
Default: 0.0
| PxReal PxJointLimitParameters::restitution |
Controls the amount of bounce when the joint hits a limit.
A restitution value of 1.0 causes the joint to bounce back with the velocity which it hit the limit. A value of zero causes the joint to stop dead.
In situations where the joint has many locked DOFs (e.g. 5) the restitution may not be applied correctly. This is due to a limitation in the solver which causes the restitution velocity to become zero as the solver enforces constraints on the other DOFs.
This limitation applies to both angular and linear limits, however it is generally most apparent with limited angular DOFs. Disabling joint projection and increasing the solver iteration count may improve this behavior to some extent.
Also, combining soft joint limits with joint drives driving against those limits may affect stability.
Range: [0,1]
Default: 0.0
| PxReal PxJointLimitParameters::stiffness |
if greater than zero, the limit is soft, i.e. a spring pulls the joint back to the limit
Range: [0, PX_MAX_F32)
Default: 0.0


I design and develop beautiful webpages that look minimalistic and please the eyes.For example, this is a website that i built using HTML and CSS. Need I say more?


| Beer Image | Name | Description | Price |
|---|---|---|---|
| Corona Extra 330ml | Corona Extra is a pale lager produced by Cervecería Modelo in Mexico for domestic distribution and export to all other countries besides the United States, and by Constellation Brands in Mexico for export to the United States. | $1.90 | |
| Stella Artois 500ml | Stella Artois is a premium European lager of noble traditions, that truly symbolizes European style and sophistication. It traces its' roots to 1366, has a full distinctive taste and is brewed with the finest barley and hops. | $2.20 | |
| Carlsberg 330ml | Carlsberg Unfiltered At carlsberg we believe in saying what's on our minds, with no filter. Just like this beer, unfiltered for a rich malty sweetness and a fresh, hoppy aroma. | $2.00 | |
| Heineken 330ml | 100% Barley malt, choice hops and pure water give this brew unsurpassed clarity. Heineken beers around the world are made from three natural ingredients – water, malted barley, and hops. Together with yeast these ingredients are used in a centuries-old brewing process, to create high-quality beers enjoyed by our consumers around the world. Brewed to be the best since 1873. Made the same way ever since. | $2.40 |


| Model | ${starship.model} |
| Manufacturer | ${starship.manufacturer} |
| Cost in credits | ${starship.cost_in_credits} |
| Length | ${starship.length} |
| Max atmosphering speed | ${starship.max_atmosphering_speed} |
| Crew | ${starship.crew} |
| Passengers | ${starship.passengers} |
| Cargo capacity | ${starship.cargo_capacity} |
| Consumables | ${starship.consumables} |
| Hyperdrive rating | ${starship.hyperdrive_rating} |
| MGLT | ${starship.MGLT} |
| Starship Class | ${starship.starship_class} |
| Residents | |
| Films |


{{hamburger_overview}}
Add a Description Back to the Burger Directory View the tutorial »
Added by {{ description.author}} on {{ description.description}}
{{ description.description}}


SVG
Scalable Vector Graphics
Scalable Vector Graphics
- XML based markup language
- Used to generate vector graphics on the web
- Did you know that vectors scale without losing quality like raster images? It's true I read it in an internet
- Works with web standards like JS and CSS
- Accessibility support
- Complex Animations - Recommend looking at GSAP among others
- MDN Docs - https://developer.mozilla.org/en-US/docs/Web/SVG
Great Support!
Great Job!
Baby steps
Adding SVGs to your project
SVG Code
- Simple shapes are relatively easy to hand code
- Complex designs recommend using a vector graphic library such as Illustrator or Sketch
- Exports from libraries usually add unnecessary cruft - optimization with SVGO
- Slightly different style attributes/properties than familiar CSS properties
Several Ways to Implement
Inline SVG
- Complete styling control including individual shapes
- Adds bloat to HTML
<img />
- Easy to implement
- Acts just like an .png/.jpg/.gif
- Cannot be styled outside of the <img /> abilities
CSS Background-Image
- Maintained in CSS (no added markup bloat)
- Limited styling control
- Tricky for accessibility
Sprite (<use />)
- Easy to implement with build step
- CSS styling...cannot style individual shapes (thanks shadow-dom)
- Great for icon systems
- Does add bloat to HTML
Sprite External Reference
Sprite External Reference
- Leverages caching
- Easy to implement with build step
- Does NOT add bloat to HTML
- CSS styling...cannot style individual shapes
- Does not support cross-origin
- Is NOT supported in IE 9 - 11
1. Export Icons from Illustrator
4. Embed the sprite and reference


The rules to make the rules
Decent's mixins help a project maintain color and contrast standards while still looking beautiful.
These are Less mixins designed to be used in the Less version of Decent. If you're just using the CSS, then you already benefit from all of these mixins, because they're used to generate the rules there.


navigate
Home
Documentation
Downloads
Contributing
Board Reports
Releasing
Mailing List
Issue Tracking
ASF Home
How it works
License
Sponsorship
Thanks
Security
Home
Documentation
Download
Community
Contributing
Board Reports
Releasing
Support
Mailing List
Issue Tracking
ASF
ASF Home
How it works
License
Sponsorship
Thanks
Security


Java is known as an Object-Oriented programming Language. As such, to program in Java you must be familiar with many aspects of Object-Oriented design, including but not limited to variables, methods, classes, and inheritance. This website offers an introduction to these concepts and links to find other sources of information and more advanced topics.
If you're a beginner, it can be hard to choose a good IDE to get started with your adventures in Java.
When choosing an IDE, it is important that you know your own skills so that you can pick the one that would work best for you. An IDE with more features would be better suited for a person with an advanced knowledge of Java, while one with less and/or simple features might be more suited for a beginner of the language.
BlueJ is a great IDE for beginners. It offers an easy way to write and test code before implementing it, including a code pad that lets you test variable assignations and many other things. No main classes or methods are needed to run programs. It does, however, lack any serious development features, such as Android publishing or very good project management. BlueJ is best for someone who would like to jump into Java quickly, without being roadblocked by the IDE's learning curve.
Eclipse is often the IDE of choice for experienced programmers. With a focus on the developer, it offers many of the tools you need to begin coding and many more. Eclipse can, at times, be unstable and is one of the harder IDEs to set up. Using Eclipse should be the advanced programmers or those with experience in Java programming. Due to its somewhat complicated setup process (if you don't already have Java) it can be a bit cumbersome to get started working in Eclipse.
IntelliJ Idea! can best be described as a more-polished version of Eclipse. This means that it has a lot of the same features as Eclipse (as most Java IDEs do) but that it looks a bit cleaner and crashes a bit less. Google has chosen this IDE to be the development environment of choice for Android programming, which gives it a lot more importance in the industry. Like eclipse, this IDE is more for advanced users, but is a bit easier to pick up. It has great project management and is one of the best.
Thank you to Start Bootstrap for the theme.
Toggle Menu


--- layout: default ---
If you don't want to invoke the jsonnet commandline utility to evaluate Jsonnet, there are also libraries for Python and C. In future we would like to support more languages by wrapping the C API in each case.
The C API simply wraps the C++ implementation to hide C++ language features like templates, classes, overloading, etc. This makes it easier to bind to other languages, as C is typically the lowest common denominator across all systems.
The API is documented in libjsonnet.h. It is built with 'make libjsonnet.so'. It is used by the python bindings, the Jsonnet commandline tool, as well as a couple of simpler tests. Search for #include "libjsonnet.h".
To use the API, create a JsonnetVM object, set various options, then tell it to evaluate a filename or snippet. To avoid leaking memory, the result of execution (JSON or error message) and the JsonnetVM object itself must be cleaned up using the corresponding functions.
The Python API wraps the C API in a straightforward way. It can be installed with pip install jsonnet or built directly with setup.py.
The Python module provides two functions, evaluate_file(f) and evaluate_snippet(f, e). In the latter case, the parameter f is used in stack traces due to errors raised in the snippet.
Keyword arguments to these functions are used to control the virtual machine. They include gc_min_objects, gc_growth_trigger, ext_vars, debug_ast, and max_trace. The debug_ast argument is a boolean, and ext_vars is a dict mapping strings to strings. The other keyword arguments should be numbers.
Another keyword argument import_callback can be used to pass a callable to trap the Jsonnet import constructs. This allows, e.g., reading files out of archives or implementing library search paths. The supplied function must take two string arguments (directory of the current file and the string given to the import construct, which can usually be concatenated to form an actual path but that is up to you). It returns a tuple of two strings, the first being the actual path of the file and the second being the content. The actual path is required so that imports can be resolved within the imported file.
If an error is raised during the evaluation of the Jsonnet code, it is formed into a stack trace and thrown as a python RuntimeError. Otherwise, the JSON string is returned. To convert this into objects for easy interpretation in Python, use the json module. An example:
import json import _jsonnet jsonnet_str = ''' { person1: { name: "Alice", welcome: "Hello " + self.name + "!", }, person2: self.person1 { name: std.extVar("OTHER_NAME") }, } ''' json_str = _jsonnet.evaluate_snippet("snippet", jsonnet_str, ext_vars={'OTHER_NAME': 'Bob'}) json_obj = json.loads(json_str) for person_id, person in json_obj.iteritems(): print('%s is %s, greeted by "%s"' % (person_id, person['name'], person['welcome']))
There are unofficial bindings available for other languages. These are not supported by Google and may be some versions behind the latest release.


Home
Items
Contact Us
Login
Signup
Login Please..
Login
if you don't have account please
Signup
Forget Password


In this chapter, we describe the syntax and informal semantics of Haskell expressions, including their translations into the Haskell kernel, where appropriate. Except in the case of let expressions, these translations preserve both the static and dynamic semantics. Free variables and constructors used in these translations always refer to entities defined by the Prelude. For example, “concatMap” used in the translation of list comprehensions (Section 3.11) means the concatMap defined by the Prelude, regardless of whether or not the identifier “concatMap” is in scope where the list comprehension is used, and (if it is in scope) what it is bound to.
| exp | → | infixexp :: [context =>] type | (expression type signature) |
| | | infixexp | ||
| infixexp | → | lexp qop infixexp | (infix operator application) |
| | | - infixexp | (prefix negation) | |
| | | lexp | ||
| lexp | → | \ apat1 … apatn -> exp | (lambda abstraction, n ≥ 1) |
| | | let decls in exp | (let expression) | |
| | | if exp [;] then exp [;] else exp | (conditional) | |
| | | case exp of { alts } | (case expression) | |
| | | do { stmts } | (do expression) | |
| | | fexp | ||
| fexp | → | [fexp] aexp | (function application) |
| aexp | → | qvar | (variable) |
| | | gcon | (general constructor) | |
| | | literal | ||
| | | ( exp ) | (parenthesized expression) | |
| | | ( exp1 , … , expk ) | (tuple, k ≥ 2) | |
| | | [ exp1 , … , expk ] | (list, k ≥ 1) | |
| | | [ exp1 [, exp2] .. [exp3] ] | (arithmetic sequence) | |
| | | [ exp | qual1 , … , qualn ] | (list comprehension, n ≥ 1) | |
| | | ( infixexp qop ) | (left section) | |
| | | ( qop⟨-⟩ infixexp ) | (right section) | |
| | | qcon { fbind1 , … , fbindn } | (labeled construction, n ≥ 0) | |
| | | aexp⟨qcon⟩ { fbind1 , … , fbindn } | (labeled update, n ≥ 1) | |
Expressions involving infix operators are disambiguated by the operator’s fixity (see Section 4.4.2). Consecutive unparenthesized operators with the same precedence must both be either left or right associative to avoid a syntax error. Given an unparenthesized expression “x qop(a,i) y qop(b,j) z” (where qop(a,i) means an operator with associativity a and precedence i), parentheses must be added around either “xqop(a,i) y” or “y qop(b,j) z” when i = j unless a = b = l or a = b = r.
An example algorithm for resolving expressions involving infix operators is given in Section 10.6.
Negation is the only prefix operator in Haskell; it has the same precedence as the infix - operator defined in the Prelude (see Section 4.4.2, Figure 4.1).
The grammar is ambiguous regarding the extent of lambda abstractions, let expressions, and conditionals. The ambiguity is resolved by the meta-rule that each of these constructs extends as far to the right as possible.
Sample parses are shown below.
| This | Parses as |
| f x + g y | (f x) + (g y) |
| - f x + y | (- (f x)) + y |
| let { ... } in x + y | let { ... } in (x + y) |
| z + let { ... } in x + y | z + (let { ... } in (x + y)) |
| f x y :: Int | (f x y) :: Int |
| \ x -> a+b :: Int | \ x -> ((a+b) :: Int) |
For the sake of clarity, the rest of this section will assume that expressions involving infix operators have been resolved according to the fixities of the operators.
Errors during expression evaluation, denoted by ⊥ (“bottom”), are indistinguishable by a Haskell program from non-termination. Since Haskell is a non-strict language, all Haskell types include ⊥. That is, a value of any type may be bound to a computation that, when demanded, results in an error. When evaluated, errors cause immediate program termination and cannot be caught by the user. The Prelude provides two functions to directly cause such errors:
A call to error terminates execution of the program and returns an appropriate error indication to the operating system. It should also display the string in some system-dependent manner. When undefined is used, the error message is created by the compiler.
Translations of Haskell expressions use error and undefined to explicitly indicate where execution time errors may occur. The actual program behavior when an error occurs is up to the implementation. The messages passed to the error function in these translations are only suggestions; implementations may choose to display more or less information when an error occurs.
| aexp | → | qvar | (variable) |
| | | gcon | (general constructor) | |
| | | literal |
| gcon | → | () | |
| | | [] | ||
| | | (,{,}) | ||
| | | qcon | ||
| var | → | varid | ( varsym ) | (variable) |
| qvar | → | qvarid | ( qvarsym ) | (qualified variable) |
| con | → | conid | ( consym ) | (constructor) |
| qcon | → | qconid | ( gconsym ) | (qualified constructor) |
| varop | → | varsym | ` varid ` | (variable operator) |
| qvarop | → | qvarsym | ` qvarid ` | (qualified variable operator) |
| conop | → | consym | ` conid ` | (constructor operator) |
| qconop | → | gconsym | ` qconid ` | (qualified constructor operator) |
| op | → | varop | conop | (operator) |
| qop | → | qvarop | qconop | (qualified operator) |
| gconsym | → | : | qconsym |
Haskell provides special syntax to support infix notation. An operator is a function that can be applied using infix syntax (Section 3.4), or partially applied using a section (Section 3.5).
An operator is either an operator symbol, such as + or $$, or is an ordinary identifier enclosed in grave accents (backquotes), such as ` op `. For example, instead of writing the prefix application op x y, one can write the infix application x` op ` y. If no fixity declaration is given for ` op ` then it defaults to highest precedence and left associativity (see Section 4.4.2).
Dually, an operator symbol can be converted to an ordinary identifier by enclosing it in parentheses. For example, (+) x y is equivalent to x + y, and foldr (⋆) 1 xs is equivalent to foldr (\x y -> x⋆y) 1 xs.
Special syntax is used to name some constructors for some of the built-in types, as found in the production for gcon and literal. These are described in Section 6.1.
An integer literal represents the application of the function fromInteger to the appropriate value of type Integer. Similarly, a floating point literal stands for an application of fromRational to a value of type Rational (that is, Ratio Integer).
Translation: The integer literal i is equivalent to fromInteger i, where fromInteger is a method in class Num (see Section 6.4.1).
The floating point literal f is equivalent to fromRational (n Ratio.% d), where fromRational is a method in class Fractional and Ratio.% constructs a rational from two integers, as defined in the Ratio library. The integers n and d are chosen so that n∕d = f.
| fexp | → | [fexp] aexp | (function application) |
| lexp | → | \ apat1 … apatn -> exp | (lambda abstraction, n ≥ 1) |
Function application is written e1 e2. Application associates to the left, so the parentheses may be omitted in (f x) y. Because e1 could be a data constructor, partial applications of data constructors are allowed.
Lambda abstractions are written \ p1 … pn -> e, where the pi are patterns. An expression such as \x:xs->x is syntactically incorrect; it may legally be written as \(x:xs)->x.
The set of patterns must be linear—no variable may appear more than once in the set.
Given this translation combined with the semantics of case expressions and pattern matching described in Section 3.17.3, if the pattern fails to match, then the result is ⊥.
| infixexp | → | lexp qop infixexp | |
| | | - infixexp | (prefix negation) | |
| | | lexp | ||
| qop | → | qvarop | qconop | (qualified operator) |
The form e1 qop e2 is the infix application of binary operator qop to expressions e1 and e2.
The special form -e denotes prefix negation, the only prefix operator in Haskell, and is syntax for negate (e). The binary - operator does not necessarily refer to the definition of - in the Prelude; it may be rebound by the module system. However, unary - will always refer to the negate function defined in the Prelude. There is no link between the local meaning of the - operator and unary negation.
Prefix negation has the same precedence as the infix operator - defined in the Prelude (see Table 4.1). Because e1-e2 parses as an infix application of the binary operator -, one must write e1(-e2) for the alternative parsing. Similarly, (-) is syntax for (\ x y -> x-y), as with any infix operator, and does not denote (\ x -> -x)—one must use negate for that.
| aexp | → | ( infixexp qop ) | (left section) |
| | | ( qop⟨-⟩ infixexp ) | (right section) |
Sections are written as ( op e ) or ( e op ), where op is a binary operator and e is an expression. Sections are a convenient syntax for partial application of binary operators.
Syntactic precedence rules apply to sections as follows. (op e) is legal if and only if (x op e) parses in the same way as (x op (e)); and similarly for (e op). For example, (⋆a+b) is syntactically invalid, but (+a⋆b) and (⋆(a+b)) are valid. Because (+) is left associative, (a+b+) is syntactically correct, but (+a+b) is not; the latter may legally be written as (+(a+b)). As another example, the expression
is invalid because, by the let/lambda meta-rule (Section 3), the expression
parses as
rather than
Because - is treated specially in the grammar, (- exp) is not a section, but an application of prefix negation, as described in the preceding section. However, there is a subtract function defined in the Prelude such that (subtract exp) is equivalent to the disallowed section. The expression (+ (- exp)) can serve the same purpose.
| lexp | → | if exp [;] then exp [;] else exp |
A conditional expression has the form if e1 then e2 else e3 and returns the value of e2 if the value of e1 is True, e3 if e1 is False, and ⊥ otherwise.
Translation: The following identity holds:
| if e1 then e2 else e3 | = | case e1 of { True -> e2 ; False -> e3 } |
where True and False are the two nullary constructors from the type Bool, as defined in the Prelude. The type of e1 must be Bool; e2 and e3 must have the same type, which is also the type of the entire conditional expression.
| infixexp | → | exp1 qop exp2 | |
| aexp | → | [ exp1 , … , expk ] | (k ≥ 1) |
| | | gcon | ||
| gcon | → | [] | |
| | | qcon | ||
| qcon | → | ( gconsym ) | |
| qop | → | qconop | |
| qconop | → | gconsym | |
| gconsym | → | : |
Lists are written [e1, …, ek], where k ≥ 1. The list constructor is :, and the empty list is denoted []. Standard operations on lists are given in the Prelude (see Section 6.1.3, and Chapter 9 notably Section 9.1).
Translation: The following identity holds:
| [e1, …, ek] | = | e1 : (e2 : ( … (ek : []))) |
where : and [] are constructors for lists, as defined in the Prelude (see Section 6.1.3). The types of e1 through ek must all be the same (call it t), and the type of the overall expression is [t] (see Section 4.1.2).
The constructor “:” is reserved solely for list construction; like [], it is considered part of the language syntax, and cannot be hidden or redefined. It is a right-associative operator, with precedence level 5 (Section 4.4.2).
| aexp | → | ( exp1 , … , expk ) | (k ≥ 2) |
| | | qcon | ||
| qcon | → | (,{,}) | |
Tuples are written (e1, …, ek), and may be of arbitrary length k ≥ 2. The constructor for an n-tuple is denoted by (,…,), where there are n − 1 commas. Thus (a,b,c) and (,,) a b c denote the same value. Standard operations on tuples are given in the Prelude (see Section 6.1.4 and Chapter 9).
Translation: (e1, …, ek) for k ≥ 2 is an instance of a k-tuple as defined in the Prelude, and requires no translation. If t1 through tk are the types of e1 through ek, respectively, then the type of the resulting tuple is (t1, …, tk) (see Section 4.1.2).
| aexp | → | gcon |
| | | ( exp ) | |
| gcon | → | () |
The form (e) is simply a parenthesized expression, and is equivalent to e. The unit expression () has type () (see Section 4.1.2). It is the only member of that type apart from ⊥, and can be thought of as the “nullary tuple” (see Section 6.1.5).
| aexp | → | [ exp1 [, exp2] .. [exp3] ] |
The arithmetic sequence [e1, e2 .. e3] denotes a list of values of type t, where each of the ei has type t, and t is an instance of class Enum.
Translation: Arithmetic sequences satisfy these identities:
| [ e1.. ] | = | enumFrom e1 |
| [ e1,e2.. ] | = | enumFromThen e1 e2 |
| [ e1..e3 ] | = | enumFromTo e1 e3 |
| [ e1,e2..e3 ] | = | enumFromThenTo e1 e2 e3 |
where enumFrom, enumFromThen, enumFromTo, and enumFromThenTo are class methods in the class Enum as defined in the Prelude (see Figure 6.1).
The semantics of arithmetic sequences therefore depends entirely on the instance declaration for the type t. See Section 6.3.4 for more details of which Prelude types are in Enum and their semantics.
| aexp | → | [ exp | qual1 , … , qualn ] | (list comprehension, n ≥ 1) |
| qual | → | pat <- exp | (generator) |
| | | let decls | (local declaration) | |
| | | exp | (boolean guard) |
A list comprehension has the form [ e | q1, …, qn ],n ≥ 1, where the qi qualifiers are either
Such a list comprehension returns the list of elements produced by evaluating e in the successive environments created by the nested, depth-first evaluation of the generators in the qualifier list. Binding of variables occurs according to the normal pattern matching rules (see Section 3.17), and if a match fails then that element of the list is simply skipped over. Thus:
yields the list [4,2]. If a qualifier is a boolean guard, it must evaluate to True for the previous pattern match to succeed. As usual, bindings in list comprehensions can shadow those in outer scopes; for example:
[ x | x <- x, x <- x ] | = | [ z | y <- x, z <- y] |
Translation: List comprehensions satisfy these identities, which may be used as a translation into the kernel:
| [ e | True ] | = | [e] |
| [ e | q ] | = | [ e | q, True ] |
| [ e | b, Q ] | = | if b then [ e | Q ] else [] |
| [ e | p <- l, Q ] | = | let ok p = [ e | Q ] |
| ok _ = [] | ||
| in concatMap ok l | ||
| [ e | let decls, Q ] | = | let decls in [ e | Q ] |
where e ranges over expressions, p over patterns, l over list-valued expressions, b over boolean expressions, decls over declaration lists, q over qualifiers, and Q over sequences of qualifiers. ok is a fresh variable. The function concatMap, and boolean value True, are defined in the Prelude.
As indicated by the translation of list comprehensions, variables bound by let have fully polymorphic types while those defined by <- are lambda bound and are thus monomorphic (see Section 4.5.4).
| lexp | → | let decls in exp |
Let expressions have the general form let { d1 ; … ; dn } in e, and introduce a nested, lexically-scoped, mutually-recursive list of declarations (let is often called letrec in other languages). The scope of the declarations is the expression e and the right hand side of the declarations. Declarations are described in Chapter 4. Pattern bindings are matched lazily; an implicit ~ makes these patterns irrefutable. For example,
| let (x,y) = undefined in e |
does not cause an execution-time error until x or y is evaluated.
Translation: The dynamic semantics of the expression let { d1 ; … ; dn } in e0 are captured by this translation: After removing all type signatures, each declaration di is translated into an equation of the form pi = ei, where pi and ei are patterns and expressions respectively, using the translation in Section 4.4.3. Once done, these identities hold, which may be used as a translation into the kernel:
| let {p1=e1; ... ; pn=en} in e0 | = | let (~p1, ... ,~pn) = (e1, ... ,en) in e0 |
| let p = e1 in e0 | = | case e1 of ~p -> e0 |
| where no variable in p appears free in e1 | ||
| let p = e1 in e0 | = | let p = fix ( \ ~p -> e1) in e0 |
where fix is the least fixpoint operator. Note the use of the irrefutable patterns ~p. This translation does not preserve the static semantics because the use of case precludes a fully polymorphic typing of the bound variables. The static semantics of the bindings in a let expression are described in Section 4.4.3.
| lexp | → | case exp of { alts } | |
| alts | → | alt1 ; … ; altn | (n ≥ 1) |
| alt | → | pat -> exp [where decls] | |
| | | pat gdpat [where decls] | ||
| | | (empty alternative) | ||
| gdpat | → | guards -> exp [ gdpat ] | |
| guards | → | | guard1, …, guardn | (n ≥ 1) |
| guard | → | pat <- infixexp | (pattern guard) |
| | | let decls | (local declaration) | |
| | | infixexp | (boolean guard) |
A case expression has the general form case e of { p1 match1 ; … ; pn matchn } where each matchi is of the general form
| gsi1 | -> ei1 |
|
… |
||
| gsimi | -> eimi |
|
where declsi
|
A guard has one of the following forms:
An alternative of the form pat -> exp where decls is treated as shorthand for:
pat | True | -> exp |
|
where decls
|
A case expression must have at least one alternative and each alternative must have at least one body. Each body must have the same type, and the type of the whole expression is that type.
A case expression is evaluated by pattern matching the expression e against the individual alternatives. The alternatives are tried sequentially, from top to bottom. If e matches the pattern of an alternative, then the guarded expressions for that alternative are tried sequentially from top to bottom in the environment of the case expression extended first by the bindings created during the matching of the pattern, and then by the declsi in the where clause associated with that alternative.
For each guarded expression, the comma-separated guards are tried sequentially from left to right. If all of them succeed, then the corresponding expression is evaluated in the environment extended with the bindings introduced by the guards. That is, the bindings that are introduced by a guard (either by using a let clause or a pattern guard) are in scope in the following guards and the corresponding expression. If any of the guards fail, then this guarded expression fails and the next guarded expression is tried.
If none of the guarded expressions for a given alternative succeed, then matching continues with the next alternative. If no alternative succeeds, then the result is ⊥. Pattern matching is described in Section 3.17, with the formal semantics of case expressions in Section 3.17.3.
A note about parsing. The expression
is tricky to parse correctly. It has a single unambiguous parse, namely
However, the phrase Bool -> a is syntactically valid as a type, and parsers with limited lookahead may incorrectly commit to this choice, and hence reject the program. Programmers are advised, therefore, to avoid guards that end with a type signature — indeed that is why a guard contains an infixexp not an exp.
| lexp | → | do { stmts } | (do expression) |
| stmts | → | stmt1 … stmtn exp [;] | (n ≥ 0) |
| stmt | → | exp ; | |
| | | pat <- exp ; | ||
| | | let decls ; | ||
| | | ; | (empty statement) |
A do expression provides a more conventional syntax for monadic programming. It allows an expression such as
to be written in a more traditional way as:
Translation: Do expressions satisfy these identities, which may be used as a translation into the kernel, after eliminating empty stmts:
| do {e} | = | e |
| do {e;stmts} | = | e >> do {stmts} |
| do {p <- e; stmts} | = | let ok p = do {stmts} |
| ok _ = fail "..." | ||
| in e >>= ok | ||
| do {let decls; stmts} | = | let decls in do {stmts} |
The ellipsis "..." stands for a compiler-generated error message, passed to fail, preferably giving some indication of the location of the pattern-match failure; the functions >>, >>=, and fail are operations in the class Monad, as defined in the Prelude; and ok is a fresh identifier.
As indicated by the translation of do, variables bound by let have fully polymorphic types while those defined by <- are lambda bound and are thus monomorphic.
A datatype declaration may optionally define field labels (see Section 4.2.1). These field labels can be used to construct, select from, and update fields in a manner that is independent of the overall structure of the datatype.
Different datatypes cannot share common field labels in the same scope. A field label can be used at most once in a constructor. Within a datatype, however, a field label can be used in more than one constructor provided the field has the same typing in all constructors. To illustrate the last point, consider:
Here S is legal but T is not, because y is given inconsistent typings in the latter.
| aexp | → | qvar |
Field labels are used as selector functions. When used as a variable, a field label serves as a function that extracts the field from an object. Selectors are top level bindings and so they may be shadowed by local variables but cannot conflict with other top level bindings of the same name. This shadowing only affects selector functions; in record construction (Section 3.15.2) and update (Section 3.15.3), field labels cannot be confused with ordinary variables.
Translation: A field label f introduces a selector function defined as:
| f x | = | case x of { C1 p11 … p1k -> e1 ;… ; Cn pn1 … pnk -> en } |
where C1 … Cn are all the constructors of the datatype containing a field labeled with f, pij is y when f labels the jth component of Ci or _ otherwise, and ei is y when some field in Ci has a label of f or undefined otherwise.
| aexp | → | qcon { fbind1 , … , fbindn } | (labeled construction, n ≥ 0) |
| fbind | → | qvar = exp |
A constructor with labeled fields may be used to construct a value in which the components are specified by name rather than by position. Unlike the braces used in declaration lists, these are not subject to layout; the { and } characters must be explicit. (This is also true of field updates and field patterns.) Construction using field labels is subject to the following constraints:
The expression F {}, where F is a data constructor, is legal whether or not F was declared with record syntax (provided F has no strict fields — see the fourth bullet above); it denotes F ⊥1 … ⊥n, where n is the arity of F.
Translation: In the binding f = v, the field f labels v.
| C { bs } | = | C (pick1C bs undefined) … (pickkC bs undefined) |
where k is the arity of C.
The auxiliary function pickiC bs d is defined as follows:
If the ith component of a constructor C has the field label f, and if f = v appears in the binding list bs, then pickiC bs d is v. Otherwise, pickiC bs d is the default value d.
| aexp | → | aexp⟨qcon⟩ { fbind1 , … , fbindn } | (labeled update, n ≥ 1) |
Values belonging to a datatype with field labels may be non-destructively updated. This creates a new value in which the specified field values replace those in the existing value. Updates are restricted in the following ways:
Translation: Using the prior definition of pick,
| e { bs } | = | case e of |
| C1 v1 … vk1 -> C1 (pick1C1 bs v1) … (pickk 1C1 bs v k1) | ||
| ... | ||
| Cj v1 … vkj -> Cj (pick1Cj bs v1) … (pickk jCj bs v kj) | ||
| _ -> error "Update error" | ||
where {C1,…,Cj} is the set of constructors containing all labels in bs, and ki is the arity of Ci.
Here are some examples using labeled fields:
| Expression | Translation |
| C1 {f1 = 3} | C1 3 undefined |
| C2 {f1 = 1, f4 = 'A', f3 = 'B'} | C2 1 'B' 'A' |
| x {f1 = 1} | case x of C1 _ f2 -> C1 1 f2 |
| C2 _ f3 f4 -> C2 1 f3 f4 | |
| exp | → | exp :: [context =>] type |
Expression type-signatures have the form e :: t, where e is an expression and t is a type (Section 4.1.2); they are used to type an expression explicitly and may be used to resolve ambiguous typings due to overloading (see Section 4.3.4). The value of the expression is just that of exp. As with normal type signatures (see Section 4.4.1), the declared type may be more specific than the principal type derivable from exp, but it is an error to give a type that is more general than, or not comparable to, the principal type.
Patterns appear in lambda abstractions, function definitions, pattern bindings, list comprehensions, do expressions, and case expressions. However, the first five of these ultimately translate into case expressions, so defining the semantics of pattern matching for case expressions is sufficient.
| pat | → | lpat qconop pat | (infix constructor) |
| | | lpat | ||
| lpat | → | apat | |
| | | - (integer | float) | (negative literal) | |
| | | gcon apat1 … apatk | (arity gcon = k, k ≥ 1) | |
| apat | → | var [ @ apat] | (as pattern) |
| | | gcon | (arity gcon = 0) | |
| | | qcon { fpat1 , … , fpatk } | (labeled pattern, k ≥ 0) | |
| | | literal | ||
| | | _ | (wildcard) | |
| | | ( pat ) | (parenthesized pattern) | |
| | | ( pat1 , … , patk ) | (tuple pattern, k ≥ 2) | |
| | | [ pat1 , … , patk ] | (list pattern, k ≥ 1) | |
| | | ~ apat | (irrefutable pattern) | |
| fpat | → | qvar = pat |
The arity of a constructor must match the number of sub-patterns associated with it; one cannot match against a partially-applied constructor.
All patterns must be linear —no variable may appear more than once. For example, this definition is illegal:
Patterns of the form var@pat are called as-patterns, and allow one to use var as a name for the value being matched by pat. For example,
is equivalent to:
Patterns of the form _ are wildcards and are useful when some part of a pattern is not referenced on the right-hand-side. It is as if an identifier not used elsewhere were put in its place. For example,
is equivalent to:
Patterns are matched against values. Attempting to match a pattern can have one of three results: it may fail; it may succeed, returning a binding for each variable in the pattern; or it may diverge (i.e. return ⊥). Pattern matching proceeds from left to right, and outside to inside, according to the following rules:
Operationally, this means that no matching is done on a ~apat pattern until one of the variables in apat is used. At that point the entire pattern is matched against the value, and if the match fails or diverges, so does the overall computation.
That is, constructors associated with newtype serve only to change the type of a value.
The interpretation of numeric literals is exactly as described in Section 3.2; that is, the overloaded function fromInteger or fromRational is applied to an Integer or Rational literal (resp) to convert it to the appropriate type.
Aside from the obvious static type constraints (for example, it is a static error to match a character against a boolean), the following static class constraints hold:
It is sometimes helpful to distinguish two kinds of patterns. Matching an irrefutable pattern is non-strict: the pattern matches even if the value to be matched is ⊥. Matching a refutable pattern is strict: if the value to be matched is ⊥ the match diverges. The irrefutable patterns are as follows: a variable, a wildcard, N apat where N is a constructor defined by newtype and apat is irrefutable (see Section 4.2.3), var@apat where apat is irrefutable, or of the form ~apat (whether or not apat is irrefutable). All other patterns are refutable.
Here are some examples:
| (\ ~(x,y) -> 0) ⊥ ⇒ 0 |
| (\ (x,y) -> 0) ⊥ ⇒ ⊥ |
| (\ ~[x] -> 0) [] ⇒ 0 |
| (\ ~[x] -> x) [] ⇒ ⊥ |
| (\ ~[x,~(a,b)] -> x) [(0,1),⊥] ⇒ (0,1) |
| (\ ~[x, (a,b)] -> x) [(0,1),⊥] ⇒ ⊥ |
| (\ (x:xs) -> x:x:xs) ⊥ ⇒ ⊥ |
| (\ ~(x:xs) -> x:x:xs) ⊥ ⇒ ⊥:⊥:⊥ |
These examples illustrate the difference in pattern matching between types defined by data and newtype:
| (\ (N True) -> True) ⊥ ⇒ ⊥ |
| (\ (D True) -> True) ⊥ ⇒ ⊥ |
| (\ ~(D True) -> True) ⊥ ⇒ True |
Additional examples may be found in Section 4.2.3.
Top level patterns in case expressions and the set of top level patterns in function or pattern bindings may have zero or more associated guards. See Section 3.13 for the syntax and semantics of guards.
The guard semantics have an influence on the strictness characteristics of a function or case expression. In particular, an otherwise irrefutable pattern may be evaluated because of a guard. For example, in
both a and y will be evaluated by == in the guard.
The semantics of all pattern matching constructs other than case expressions are defined by giving identities that relate those constructs to case expressions. The semantics of case expressions themselves are in turn given as a series of identities, in Figures 3.1–3.3. Any implementation should behave so that these identities hold; it is not expected that it will use them directly, since that would generate rather inefficient code.
| (a) | case e of { alts } = (\v -> case v of { alts }) e |
| where v is a new variable | |
| (b) | case v of { p 1 match1; … ; pn matchn } |
| = case v of { p1 match1 ; | |
| _ -> … case v of { | |
| pn matchn ; | |
| _ -> error "No match" }…} | |
| where each matchi has the form: | |
| | gsi,1 -> ei,1 ; … ; | gsi,mi -> ei,mi where { declsi } | |
| (c) | case v of { p | gs1 -> e1 ; … |
| | gsn -> en where { decls } | |
| _ -> e′ } | |
| = case e′ of { y -> | |
| case v of { | |
| p -> let { decls } in | |
| case () of { | |
| () | gs1 -> e1; | |
| _ -> … case () of { | |
| () | gsn -> en; | |
| _ -> y } … } | |
| _ -> y }} | |
| where y is a new variable | |
| (d) | case v of { ~p -> e; _ -> e′ } |
| = (\x1 … xn -> e ) (case v of { p-> x1 })… (case v of { p -> xn}) | |
| where x1,…,xn are all the variables in p | |
| (e) | case v of { x@p -> e; _ -> e′ } |
| = case v of { p -> ( \ x -> e ) v ; _ -> e′ } | |
| (f) | case v of { _ -> e; _ -> e′ } = e |
| (g) | case v of { K p1…pn -> e; _ -> e′ } |
| = case v of { | |
| K x1…xn -> case x1 of { | |
| p1 -> … case xn of { pn -> e ; _ -> e′ } … | |
| _ -> e′ } | |
| _ -> e′ } | |
| at least one of p1,…,pn is not a variable; x1,…,xn are new variables | |
| (h) | case v of { k -> e; _ -> e′ } = if (v==k) then e else e′ |
| where k is a numeric, character, or string literal | |
| (i) | case v of { x -> e; _ -> e′ } = case v of { x -> e } |
| (j) | case v of { x -> e } = ( \ x -> e ) v |
| (k) | case N v of { N p -> e; _ -> e′ } |
| = case v of { p -> e; _ -> e′ } | |
| where N is a newtype constructor | |
| (l) | case ⊥ of { N p -> e; _ -> e′ } = case ⊥ of { p -> e } |
| where N is a newtype constructor | |
| (m) | case v of { K { f1 = p1 , f2 = p2 , … } -> e ; _ -> e′ } |
| = case e′ of { | |
| y -> | |
| case v of { | |
| K { f1 = p1 } -> | |
| case v of { K { f2 = p2 , … } -> e ; _ -> y }; | |
| _ -> y }} | |
| where f1, f2, … are fields of constructor K; y is a new variable | |
| (n) | case v of { K { f = p } -> e ; _ -> e′ } |
| = case v of { | |
| K p1 … pn -> e ; _ -> e′ } | |
| where pi is p if f labels the ith component of K, _ otherwise | |
| (o) | case v of { K {} -> e ; _ -> e′ } |
| = case v of { | |
| K _… _ -> e ; _ -> e′ } | |
| (p) | case (K′ e1 … em) of { K x1 … xn -> e; _ -> e′ } = e′ |
| where K and K′ are distinct data constructors of arity n and m, respectively | |
| (q) | case (K e1 … en) of { K x1 … xn -> e; _ -> e′ } |
| = (\x1 … xn -> e) e1 … en | |
| where K is a data constructor of arity n | |
| (r) | case ⊥ of { K x1 … xn -> e; _ -> e′ } = ⊥ |
| where K is a data constructor of arity n | |
| (s) | case () of { () | g1, …, gn -> e; _ -> e′ } |
| = case () of { | |
| () | g1 -> … case () of { | |
| () | gn -> e; | |
| _ -> e′ } … | |
| _ -> e′ } | |
| where y is a new variable | |
| (t) | case () of { () | p <- e0 -> e; _ -> e′ } |
| = case e0 of { p -> e; _ -> e′ } | |
| (u) | case () of { () | let decls -> e; _ -> e′ } |
| = let decls in e | |
| (v) | case () of { () | e0 -> e; _ -> e′ } |
| = if e0 then e else e′ | |
In Figures 3.1–3.3: e, e′ and ei are expressions; gi and gsi are guards and sequences of guards respecively; p and pi are patterns; v, x, and xi are variables; K and K′ are algebraic datatype (data) constructors (including tuple constructors); and N is a newtype constructor.
Rule (b) matches a general source-language case expression, regardless of whether it actually includes guards—if no guards are written, then True is substituted for the guards gsi,j in the matchi forms. Subsequent identities manipulate the resulting case expression into simpler and simpler forms.
Rule (h) in Figure 3.2 involves the overloaded operator ==; it is this rule that defines the meaning of pattern matching against overloaded constants.
These identities all preserve the static semantics. Rules (d), (e), (j), and (q) use a lambda rather than a let; this indicates that variables bound by case are monomorphically typed (Section 4.1.4).


Add Swimmer(s)
Add Individual Swimmer
Insert the following information about the swimmmer.
Swimmer Name
Team Name
Add Multiple Swimmers
Upload a file containing swimmer information.
Format of the file
Return to Graph View