하스켈은 수학의 기초를 가르치는 데 능숙합니까?


19

AS 및 A 수준 수학 사양과 같은 요구 사항이있는 클래스에 수학을 가르치는 데 관여합니다.

수업은 일반적으로 수학 과제에 적용되는 컴퓨터 소프트웨어의 예를 제공하지만, 일반적으로 mathlab, mathematica 또는 derive와 같은 소프트웨어 응용 프로그램을 기반으로합니다.

실제 프로그래밍 언어를 사용 하더라도 일반적으로 파스칼과 같은 오래된 언어입니다. 그리고 이것은 내 의견으로는 정말 슬프다.

Haskell은 수학에 대한 그의 감정으로 유명하기 때문에 관심이 있기 때문에 1 학년 대학생의 확장 운동 방법으로 Haskell이 좋은 선택인지 묻고 싶습니다. 전형적인 과목은 함수, caclulus, 한계뿐만 아니라 선형 대수입니다.

프로그래밍 (c #, ruby, powershell, javascript, tex)에 대한 중간 지식 경험이 있으며 XSLT를 사용하여 함수형 프로그래밍에 이미 접근했습니다.

답변은 책임감있게 찬성 될 것입니다. 선형 대수학 (예 : 벡터 공간), 다항식, 선형 방정식 풀기와 같은 수학에 적용되는 Haskell 코드의 몇 가지 기본 예제를 포함한 자세한 답변은 원하는 것으로 널리 인식되고 타겟팅됩니다.


3
이 책을 확인하십시오 : collegepublications.co.uk/computing/?00004
Fred Foo

@larsmans : 감사합니다. 그것은 참으로 좋은 출발점입니다. 나는 또한 미분, 한계, 적분과 같은보다 실용적인 수학에 관심이 있습니다.
Emiliano Poggi

Mathematica가 실제 프로그래밍 언어 가 아닌 방법을 알지 못합니다 . 수학 문제가있을 때 나는 그것을 자주 사용하고 (먼저 옥타브) 다른 언어로 변환합니다. 수학에 중점을두면 특수 수학 언어가 적합하지 않은 이유가 없습니다.
edA-qa mort-ora-y

@edA : Mathematica! = 옥타브! 옥타브는 Matlab 클론입니다. 둘 다 사용하는 사람들은 Matlab / Octave가 숫자 (큰 배열, FFT 등)에 더 적합하다고 말하면서 Mathematica는 기호 조작에 더 좋습니다. Mathematica와 가장 가까운 FOSS는 아마도 Maxima (이전의 Macsyma) 일 것입니다.
timday

@timday, 예, Octave! = Mathematica는 알고 있지만 코드 언어는 동일합니다. 또한 심볼릭 조작에 Maxima를 사용합니다.
edA-qa mort-ora-y

답변:


9

하스켈은 수학자들 사이에서 인기가 높아지고 있습니다. 한 블로거가 말한 것처럼 :

"내가 주제에 관여 한 후에 눈에 띄는 것은 일상적인 수학적 담론으로 표현 된 생각과 하스켈 코드로 표현 된 생각 사이의 거리가 비교적 좁다는 것입니다."

그래서 여기에 수집 된 견해가 있습니다.이 접근법을 사용하면 크게 잘못 갈 수 없다고 생각합니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

드디어,


1
귀하의 링크 중 일부를 읽은 후에는 너무 확신한다고 말할 수 없습니다. Haskell 세션에 앉아 Mathematica / Maxima?처럼 누군가가 실제로 작업 한 사례가 있습니까? 또한 "11 가지 이유"블로그는 표준 라이브러리가 수학자의 관점에서 엉망인 것을 지적하고 수학 패키지 목록을 보면 많은 숫자 (예 : blas, fft)를 볼 수 있지만 상징적 조작 / CAS 방식. 그렇게 말하면서 ... 두 책 모두 정말 재미있어 보입니다!
timday

그러나 실제 수학의 예는 lin. algebra matrix 추가 등과 같이 훌륭 할 것입니다-실제 구문이 어떻게 보이는지보십시오. 난 연산 오버로드 ...이없는 내기
안드리 Drozdyuk

@drozzy : 물론 타입 클래스를 통한 연산자 오버로딩이 있습니다.
nomen

4

나는 수학을 가르치는 Haskell의 열렬한 팬이지만 AS / A 수준의 모든 주제에 적합하지는 않습니다.

함수 개념을 가르치는 데 아무런 문제가 없으며 하스켈에서 선형 대수학이 좋을 수 있습니다. 선형 대수학은 종종 배열의 내부 업데이트를 통해 매우 필수적인 방식으로 학습됩니다. 모두 하스켈로 번역 될 수 있지만 약간 다르게 생각해야 할 수도 있습니다.

그러나 한계와 미적분에 대해 이야기하고 싶을 때 까다로워집니다. 나는 비 전통적인 접근 방식으로 Haskell에서 미적분학을하는 데 큰 성공을 거두었습니다. 그러나 고정 된 강의 계획서를 가르치는 것은 좋은 생각이 아닙니다. 또는 상징적 차별화로 플레이 할 수 있지만 A / AS 수준에서는 까다로울 수있는 표현식에 대한 데이터 유형을 빌드해야합니다. 시작하기에는 많은 코드가 아니며 간신히 몇 줄이지 만, 학생들에게는 무서울 수 있습니다. Derive 및 Mathematica와 달리 무료로 상징적 인 표현을 얻지 못합니다.

기본 조합은 List 모나드로 쉽게 탐색 할 수 있습니다. 이것은 확률 이론을 가르치는 데 유용 할 수 있습니다.

Haskell은 A / AS 수준에서 나타날 수있는 종류의 숫자 적용에 적합합니다. 심슨의 규칙을 적용하거나 표본 평균 및 분산을 조사합니다.

초등학교 그룹 이론을합니까? Haskell에서 쉽게 코딩하고 사용할 수 있습니다.

전반적으로 한계를 돌보면 Haskell을 사용하여 A / AS 수준의 수학을 수행하는 것이 간단하다고 생각합니다.


2

하스켈이 좋은 선택인지 확실하지 않습니다. 물론, 그것은 매우 "수학적 느낌"을 가지고 있으며, 무한한 구조를 다루고 있습니다. 그러나 당신은 이미 언어를 알고 있는 경우에만 이러한 특징들을 이해할 수 있습니다. 수학을 배우기 위해 Haskell을 배우면 하나의 어려운 과제가 다른 과제 위에 쌓입니다. 프로그래밍을 이미 알고 있더라도 Haskell을 배우는 것은 어렵습니다. 따라서 청중이 충분히 밝고 호기심이 많은지에 따라 달라집니다. 그렇지 않으면 수학 때문에 절반을 잃고 하스켈 때문에 절반을 잃게됩니다.


배후의 수학을 이미 알고 있다면 Haskell을 배우는 것은 쉽습니다. 아주 쉽게.
nomen

@ nomen있을 수도 있지만 이것은 문제가되지 않았습니다.
Landei

프로그래밍 배경을 가진 사람에게 배우기가 어렵다고해서 자격을 상실하지는 않습니다.
nomen

1

컴퓨터 언어는 수학을 가르치지 않습니다. 수학 만이 수학을 가르칩니다. 즉 : 펜과 종이 접근 (또는 분필과 칠판), 공리, 이론과 증거. 이것은 수학입니다. 언어가 아무리 섹시하더라도, 작성된 프로그램은 수학이 아니라 수학의 응용 일뿐입니다. 무언가를 적용하려면 먼저 배워야합니다.


1
저는 프로그래밍 언어가 문자 적으로 수학을 가르치는 것을 기대하는 사람이 없다고 생각합니다. 그리고 원래 질문에 프로그래밍 언어가 문자 적으로 수학을 가르 칠 것을 요구했다고 생각하지 않습니다. 그들은 수학을 가르치는 데 도움이되는 운동에 사용할 수있는 것을 원합니다.
user27539

분필, 칠판 ...
quant_dev

동의하지 않는다. 언어는 표현의 수단 일뿐입니다. 분필, 연필, 컴퓨터 : 수학을 구체적으로 표현하는 데 사용되는 도구. 언어는 수학을 추상적으로 표현하는 도구 일뿐입니다. Haskell-Curry Isomorphism 정리를 비교해보십시오 (프로그램은 건설적인 논리 의 증거 입니다)
nomen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.